Я бы хотел, чтобы группа студентов имела доступ к общему веб-серверу. Студенты работают в группах, и домашний каталог каждой группы содержит папку www которая должна быть доступна общедоступному экземпляру apache2. Например, если Боб и Джон являются частью группы MyPetShop, у вас будет пользователь john в группах john students mypetshop . Я не хочу предоставлять членство в www-data студентам, чтобы они не испортили чужие страницы напрямую *.

И их домашний каталог будет находиться в /home/students/mypetshop , а /home/students/mypetshop/www будет читаться / писать для пользователя www-data . Я могу добиться этого либо с помощью

  • липкая группа www-data для этих папок (так что их разрешения будут drwxrwsrwx john www-data). Это проблема того, что Джон использовал неправильные разрешения для своих файлов, так что bob или www-data не могут получить к ним доступ; или www-данные, создающие файлы, к которым Джон и Боб могут прикоснуться только после того, как они на некоторое время возятся с разрешениями.
  • стандартное владение группой (mypetshop) и ACL, который разрешает доступ к данным папкам www-data (через setfacl -m d:g:www-data:rwx www).

Будут ли ACL работать здесь как задумано? Являются ли списки ACL по умолчанию автоматически наследуемыми в подпапках, или есть какой-то гораздо более простой способ установить это, чего мне не хватает?


(*) да, это не надежно, так как они могли бы написать phps, выполненный с www-данными, чтобы сделать это для них ...

1 ответ1

0

Я реализовал версию ACL, и она работает как шарм. Студенты не могут испортить свои групповые разрешения, используя стандартные клиенты SSH/SFTP (которые не поддерживают ACL). Определенно рекомендуется для общего хостинга, с настройкой не очень высокого уровня безопасности.

Последовательность:

  1. Добавьте инструменты ACL setfacl и getfacl (пакет acl Debian / Ubuntu)
  2. Добавьте опцию acl в соответствующую файловую систему в вашем /etc/fstab (файловые системы без этой опции монтирования молча игнорируют ACL; в лучшем случае это сбивает с толку).
  3. Используйте setfacl чтобы разрешить пользователю доступ к каталогу www-data для всех папок /home/stucents/*/www
  4. Используйте setfacl чтобы разрешить в каждой папке www доступ по умолчанию (= sticky) для чтения-записи-выполнения для членов соответствующей группы и пользовательских www-data

Любой файл или папка, созданные в папке с ACL по умолчанию, наследуют ACL.

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