3

Это простой вопрос, я уверен, но я не могу найти причину, почему я не могу заставить это работать.

Я пытаюсь настроить групповые папки в веб-корне для сервера PHP. В каждом отделе должна быть такая группа:

/srv/www/htdocs/dev/dept1
/srv/www/htdocs/dev/dept2

Все пользователи в группе dept1 должны иметь доступ на чтение / запись к папке dept1, все пользователи в dept2 должны иметь доступ на чтение / запись к папке dept2 и т.д. Чтобы реализовать это, я создал группу следующим образом:

sudo groupadd dept1
sudo useradd -G dept1 -m user1
cd /srv/www/htdocs/dev
mkdir dept1
sudo chown -R wwwrun:dept1 dept1
sudo chmod -R g+rwxs dept1

wwwrun - это пользователь, от имени которого работает Apache. Идея состоит в том, чтобы пользователи могли создавать / читать / обновлять / удалять все, что они хотят, в своей папке отдела. Тем не менее, после попытки, учетная запись пользователя может просматривать содержимое папки и читать файлы, но не создавать и не записывать файлы.

Что я делаю неправильно?

2 ответа2

2

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

Вы можете сделать так, чтобы большинство файлов были доступны для записи в группе, изменив настройку umask для всех. Параметр umask определяет, какие разрешения не предоставляются новым файлам. Обычно он равен 022, что означает, что файлы не будут доступны для записи в группе или другой записи, если это явно не сделано. Вы можете изменить это значение на 002, чтобы по умолчанию файлы можно было записывать в группы. Однако это разумно, только если у каждого пользователя есть своя собственная личная группа (в противном случае файлы людей будут доступны для записи всем в их основной группе).

Лучшее решение - убедиться, что списки контроля доступа включены в файловой системе, в которой находится /srv/www/htdocs/dev (убедитесь, что запись fstab содержит acl в четвертом столбце). Затем создайте ACL- srv/www/htdocs/dev/dept1 предоставив группе dept1 запись в каталог, и предоставив это разрешение, унаследованное вновь созданными записями в каталоге. Это похоже на изменение umask, но оно связано с конкретным местом в файловой системе. После запуска следующих двух команд разрешения будут правильными во всех типичных случаях использования.

setfacl -R -m group:dept1:rwx /srv/www/htdocs/dev/dept1
setfacl -R -d -m group:dept1:rwx /srv/www/htdocs/dev/dept1
0

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

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