Это может быть лучше подходит для 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
он может определить, что они существуют, но не может войти в каталоги или перечислить их содержимое.