1

Возможный дубликат:
Ограничить каждого пользователя только своей домашней папкой

У меня есть веб-сервер под управлением 10.04 LTS, и, как новичок в мире администрирования серверов, я в затруднении.

Я хотел бы попросить вас не отвлекать вопрос. Я осознаю, что у меня есть некоторые неправильные вещи, такие как включение root, но я не пишу здесь. Спасибо = D


ситуация

Сейчас у меня три пользователя. Root, который, очевидно, имеет доступ ко всему, и два других пользователя, каждый из которых владеет веб-сайтом.

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

Пока все хорошо, за исключением того, что по умолчанию они также могут читать любой файл в системе, то есть они могут переходить в папки других моих сайтов и читать, например, пароли базы данных из файлов конфигурации WordPress.

Это явно проблематично.

Пользователи получают доступ к своим файлам и папкам через SSH с помощью FileZilla.

Вопрос

  • Как я могу запретить этим пользователям читать конфиденциальные данные, т.е. как я могу ограничить их доступ только к их домашней папке?

Требования

  1. Пользователи должны продолжать входить через SSH с FileZilla (то есть без решений FTP)

  2. Apache все еще должен иметь доступ к папкам пользователя (т.е. не может выполнить chmod до 750)

Известные проблемы

  • Папка, содержащая инструменты командной строки (я думаю, /bin /bash), вероятно, должна быть символической ссылкой в домашней папке пользователя? Пожалуйста, объясните, как это сделать.

Если у вас есть ответ, я был бы признателен, если бы вы написали его так, будто я ничего не знаю о командной строке. Я похож на этих пользователей, которые не знают, как скопировать, вставить файл в Windows, кроме как с помощью командной строки в Linux T_T

Спасибо = D

1 ответ1

1

Не храните конфиги базы данных для чтения во всем мире. Ограничьте их для пользователя и / или группы www-data . На самом деле, ограничьте все домашние каталоги их владельцем и группой www-data .

chgrp -R www-data /home/user
chmod -R u=rwX,g=rXs,o= /home/user

(Бит g=s заставит все вновь созданные файлы наследовать группу www-data .) Также установите значение umask по умолчанию (в /etc/profile или через PAM) 027 , что по умолчанию запрещает доступ к "другим".

Конечно, это легко обойти. Нужно просто написать веб-страницу (PHP или аналогичную), которая читает настройки других пользователей. Лучшим решением было бы установить suPHP, который заставляет веб-страницы CGI работать под учетной записью их владельца; с suPHP вам не нужно владение группой www-data - просто ограничьте все файлы их владельцем (u=rwX,go=). Тем не менее, это может привести к другой дыре в безопасности - WordPress теперь будет иметь права на запись для всего сайта, и, учитывая историю безопасности WP, это плохо.


Что касается остальной части системы - /var , /usr , /etc - большая ее часть не чувствительна. Части, которые уже защищены стандартными разрешениями. Не надо прятать остальных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .