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