it-swarm-ru.tech

Как установить права доступа к файлам по умолчанию для всех папок / файлов в каталоге?

Я хочу установить папку таким образом, чтобы все созданные в ней (каталоги, файлы) наследовали разрешения по умолчанию и группу.

Давайте назовем группу "СМИ". Кроме того, папки/файлы, созданные в каталоге, должны автоматически иметь g + rw.

274
Chris

Я нашел это: Применение разрешений по умолчанию

Из статьи:

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
288
Chris

Это дополнение к ответу Криса, оно основано на моем опыте работы с моей установкой Arch Linux.

Использование ключа по умолчанию (-d) и ключа изменения (-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 в комментариях для синтаксиса строки отзыва всех привилегий)

29
thebunnyrules

Добавьте себя/зарегистрированного пользователя в группу www-data, чтобы мы могли работать с файлами, созданными сервером www-data

Sudo usermod -a -G www-data $USER

Необходимо перезапустить/перезапустить, чтобы вновь добавленная группа вступила в силу

cd /var/www

Добавьте www-данные в качестве члена группы html-папки, а вашего пользователя - в качестве владельца, чтобы мы владели им и членом группы

Sudo chown -R $USER:www-data html

Поставьте свое имя пользователя вместо пользователя USER

Установите права на чтение, запись и выполнение, как требуется, (ugo) u = пользователь, g = группа, o = другие

Sudo chmod 750 html

Установите GID html, теперь вновь созданные файлы в html будут наследовать права владения:

Sudo chmod g+s html

Это создает правила по умолчанию для вновь созданных файлов/каталогов в каталоге html и подкаталогах.

Sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html

Сделайте SELinux, если он установлен, игнорируйте требования к контексту www-данных, чтобы он разрешал права на запись

Sudo setsebool -P httpd_unified 1

список каталогов, чтобы увидеть новые разрешения применяются

ls -ld html

Возвращает это

drwxrwsr-x+   3 html www-data

Трейлинг + означает, что ACL, Access Control List, установлен в каталоге.

Ссылка: Ссылка на форум

1
Bsienn