Как я могу использовать OverlayFS для «объединения» нескольких хранилищ в одно? Возможно ли это?

В среде общего веб-хостинга есть пара проблем, которые необходимо решить сразу же.

Что касается прав доступа к каталогам и возможности доступа только к вашим файлам: вы хотите установить такие права доступа к домашнему каталогу, чтобы группа «другие» не имела никаких прав. Помните, что для перехода к каталогам требуется разрешение eXecute, но это само по себе не позволит вам прочитать их содержимое. Следовательно, / home должен принадлежать пользователю root и иметь rwxr-x - x, чтобы пользователи могли только «вслепую» перейти в свою домашнюю папку, но не могли взглянуть и узнать, сколько пользователей в вашей системе. Это будет выглядеть примерно так (дата, размер и т. Д. Опущены для ясности):

# ls -la /home
drwxr-x--x root root .
drwxr-xr-x root root ..
drwxr-x--- usr1 usr1 usr1
drwxr-x--- usr2 usr2 usr2
...

Если вы действительно не хотите, чтобы пользователи могли читать содержимое каталогов, таких как / bin и т.д., просто удалите бит разрешения «чтение» для группы «другие». Это не повлияет на их способность использовать содержащиеся в них двоичные файлы, если они заранее знают полный маршрут.

Для доступа по SSH и FTP, если вы правильно настроите права доступа к файловой системе, то любая достойная реализация SSH или FTP уже будет защищена. Я рекомендую vsftpd для FTP, конечно, OpenSSH для SSH, но я ни в коем случае не подразумеваю, что это единственно доступные правильные варианты. Не забудьте настроить параметры конфигурации для этих служб (в частности, запретить вход в систему root через SSH, возможно, запретить вход по паролю для всех, кто поддерживает sudo и т. Д.)

Сложная часть - правильно настроить ваш веб-сервер, особенно если вам нужно запустить Скрипты CGI для динамических сайтов.В наши дни все и их бабушки хотят PHP, и вы действительно не можете запустить /home/dumbuser/public_html/php_shell.php от имени того же пользователя, который породил ваш Apache / Nginx, верно?

A Возможное решение здесь, если вы используете веб-сервер Apache, заключается в использовании модуля suexec , который будет запускать ваш сценарий CGI от имени пользователя, владеющего исполняемым файлом (подумайте, что это бит setuid). Чтобы разрешить HTTP-серверу доступ к фактическим файлам, рассмотрите возможность добавления пользователя, от имени которого работает сервер (тип. www-data ), в каждую группу пользователей в системе («каждая группа пользователей» означает каждого пользователя, использующего ваша общая среда, а не каждая учетная запись пользователя в системе).

Обратите внимание, что это едва царапает поверхность всего, что должно быть сделано для правильной настройки и защиты разделяемого сервера. Файлы конфигурации для каждой запущенной службы должны быть полностью поняты, и вам, вероятно, придется изменить их в соответствии с вашими потребностями. В частности, вам, вероятно, придется потратить хорошую неделю на изучение параметров конфигурации вашего веб-сервера и опробование их в среде разработки / тестирования.

2
12.05.2019, 09:25
1 ответ

On first glance it seems like I can only have one writable location and the other locations are just there to provide the files they have.

Верно, OverlayFS поддерживает только один доступный для записи слой вверху. Таким образом, я бы сказал, что это не совсем подходит для варианта использования, который вы описываете.

The goal is to make it so I can use all the storage as one giant location.

Я бы назвал RAID (, такой как RAID 0, только для чередования, или более высокие уровни для избыточности, которые могут противостоять сбоям диска )или менеджер томов (, такой как LVM, который может объединять тома дисков, а также может do striping )— типичные решения проблемы, которую вы описываете.

Хотя вы упомянули:

All hard drives are formatted with ext4.

Эти решения работают иначе, они работают с блочными устройствами, такими как разделы диска, так что в конечном итоге вы создадите единую файловую систему (ext4 или иную )поверх логического тома LVM или устройства RAID. вместо.

Я бы по-прежнему рекомендовал использовать одно из этих двух решений, так как они были созданы специально для описанного вами варианта использования и действительно стабильны (, так как существуют уже давно и используются во многих основных продуктах и ​​корпоративных продуктах. развертывания.)

1
27.01.2020, 22:17

Теги

Похожие вопросы