Сделать www-data владельцем и группой вновь создаваемых файлов и папок.
Я использую Ubuntu 16.04.
У меня есть несколько пользователей, которые входят в группу www-data и будут создавать / изменять файлы на сервере.
Мы будем называть их user1 и user2.
Каждый раз, когда user1 или user2 создает папку или файл в /var/www/sites/domain1.com/public
Я бы хотел, чтобы владелец и группа по умолчанию использовали www-data. Я хотел бы, чтобы файлы имели разрешения 0664, а папки - 0775.
Допустим, пользователь user1 вошел в систему и создает файл с именем test-file.txt
Если я бегу:
ls -l on /var/www/sites/domain1.com/public
Я хотел бы, чтобы вывод был похож на:
-rw-rw-r-- www-data www-data test-file.txt
Я считаю, что это можно сделать с setfacl
, но я не совсем уверен, что команда будет или если есть лучший способ.
1 ответ
Изменение разрешений каталога с 0775 на 2775 даст вам большую часть того, что вы просите. 2 означает установить идентификатор группы, а при использовании в каталоге означает, что новые объекты, созданные в этом каталоге, будут наследовать группу каталога, а не получать текущую группу процесса, который создал объект.
Если каталоги еще не принадлежат группе www-данных, вам необходимо сначала изменить группу, прежде чем изменять разрешения.
Кроме того, вам нужно убедиться, что umask каждого пользователя равен 0002. это значение по умолчанию, поэтому, если пользователи не изменились, оно будет иметь правильное значение.
Выполнение вышеперечисленного покрывает все, что вы просили, кроме смены владельца файлов. Я не сталкивался со сценариями использования, где это различие было важно, и наличие владельца файла, указывающего, кто создал файл, может быть полезным.
Совершенно другой подход заключается в использовании системы контроля версий и создании процедуры для отправки обновлений файлов из системы контроля версий. Использование контроля исходного кода является основной помощью, когда несколько человек должны обновить одни и те же файлы.