Я хочу установить папку так, чтобы все созданное в ней (каталоги, файлы) наследовало разрешения и группу по умолчанию.
Назовем эту группу "media". Кроме того, папки/файлы, созданные в каталоге, должны иметь g+rw автоматически.
Я нашел это: Применение разрешений по умолчанию
Из статьи:
chmod g+s <directory> //set gid
setfacl -d -m g::rwx /<directory> //set group to rwx default
setfacl -d -m o::rx /<directory> //set other
Далее мы можем проверить:
getfacl /<directory>
Выход:
# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
Это дополнение к ответу Криса, оно основано на моем опыте работы на моей установке Arch Linux.
Использование переключателя по умолчанию (-d) и переключателя modify (-m) изменит только разрешения по умолчанию, но оставит существующие разрешения нетронутыми:
setfacl -d -m g::rwx /<directory>
Если вы хотите изменить всю структуру разрешений папки, включая существующие (вам придется сделать дополнительную строку и сделать ее рекурсивной -R:
setfacl -R -m g::rwx /<directory>
например.
setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else.
(CREDIT markdwite в комментариях за синтаксис строки revoke all privileges)
Добавить себя/пользователя в WWW-данные группы, поэтому мы можем работать с файлами, созданными на www-сервере данных
sudo usermod -a -G www-data $USER
Нуждается в перезагрузке/перелогиниться чтобы вновь добавленная группа вступает в силу
cd /var/www
Добавить www-data как члена группы в HTML папку, а пользователю как владельцу, так мы его, как члена группы
sudo chown -R $USER:www-data html
Поставить свое имя в место пользователя
Установить права на чтение,запись,выполнение разрешения, как это требуется, (Уго) у=пользователь, г=Группа, о=другие
sudo chmod 750 html
Установить гид в формате HTML, теперь, вновь созданные файлы в HTML, будут наследовать права собственности:
sudo chmod g+s html
Это создает правило по умолчанию для вновь создаваемых файлов/папок в HTML-каталога и вложенных каталогов.
sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html
SELinux можно сделать, если установлено, игнорировать ВСП-данных в контексте требований, поэтому она позволяет позволяет запись
sudo setsebool -P httpd_unified 1
каталог список, чтобы увидеть новые разрешения
ls -ld html
Возвращает это
drwxrwsr-x+ 3 html www-data
Трейлинг + означает, что список управления доступом, списки контроля доступа, находится в каталоге.
Ссылки: Ссылка на форум
С помощью следующей команды вы можете установить разрешение по умолчанию для файла:
chacl -R filename