Разрешения веб-сервера Ubuntu - PullRequest
0 голосов
/ 07 апреля 2011

Теперь я купил сервер Ubuntu Cloud. Я установил Webmin сегодня утром, и теперь у меня есть вопрос. Можно ли создать пользователей, которые могут использовать только один каталог: SVN, FTP, PHP, Python, MySQL, Apache? Так, например, пользователь Kevin может использовать только / var / www / kevin /? О, после создания каталога извлечение SVN должно заполнить каталог. Каков наилучший способ управления всеми базами данных? Многие люди будут работать с базой данных, так как я могу сохранить ее в безопасности? Можно ли выполнять резервное копирование базы данных при каждом выполнении запроса?

Большое спасибо,

С уважением, Kevin

1 Ответ

3 голосов
/ 07 апреля 2011

Это может быть лучше подходит для https://askubuntu.com/

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

Вы можете настроить свои стандартные Unix-разрешения , чтобы разрешить kevin писать только в /var/www/kevin.Для ограничения того, какие программы kevin может запустить , вероятно, потребуется инструмент, подобный AppArmor , SElinux , TOMOYO или SMACK .Любой из этих инструментов обязательного контроля доступа может помешать пользователю выполнять ненадежные программы или обеспечить дополнительный уровень безопасности поверх стандартных разрешений Unix.

Я работаю над AppArmor дляПрошло уже более десяти лет, и это был бы инструмент, который я бы выбрал первым для этой работы, но другие инструменты превосходны и могут лучше подходить для вашей среды.(AppArmor, возможно, уже предустановлен. Проверьте вывод aa-status(8), чтобы увидеть.:)

Но сначала убедитесь, что ваши разрешения Unix верны - old-school они могут быть, но они превосходны.

Обновление

Но как я могу сделать так, что когда 'kevin' входит в SSH, он автоматически переходит в каталог /var/www/kevin/ (и не может перейти в /var/www/ или каталоги ниже)?

Вы можете добавить команду cd /var/www/kevin в файл kevin ~/.bash_profile или ~/.profile.Это может быть скорее раздражающим, чем полезным.(Я не рекомендую устанавливать домашний каталог kevin (в /etc/passwd) на /var/www/kevin, потому что он будет хранить информацию ~/.bash_history и ~/.ssh/* в /var/www/kevin/.bash_history и /var/www/kevin/.ssh/, потенциально раскрывая слишком много личной информации kevin.)

Чтобы позволить Кевину войти в /var/www/kevin/, Кевину нужно будет ввести /var/www - но ему не обязательно видеть содержимое /var/www:

root:root   755 /var
root:root   751 /var/www
kevin:kevin 755 /var/www/kevin
other:www   750 /var/www/other
priv:www    750 /var/www/private

Если ваш веб-сервер работает с группой или дополнительной группой www, он сможет просматривать и читать все эти каталоги.Кевин не может.(Предполагая, что кевин не в группе или дополнительной группе www.) Кевин может cd /var/www, а если кевин угадывает /var/www/other или /var/www/private он может определить, что они существуют, но не может войти в каталоги или перечислить их содержимое.

...