Назад | Перейти на главную страницу

Разрешение файла рекурсивно для всех новых папок и файлов, которые создаются

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

sudo chmod -R 2777 new_folder
ll 
drwxrwsrwx 2 test test 4096 Oct 11 08:30 new_folder
cd new_folder
touch new_file
ll new_file
-rw-rw-r-- 1 test test 0 Oct 11 08:31 new_file

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

У вас никогда не будет автоматического разрешения на выполнение файлов потому что это ограничение безопасности Linux.

Единственный способ рекурсивно иметь одного и того же владельца и группу для всех пользователей - это настроить том NFS и использовать all_squash с участием anonuid и anongid в конфигурации экспорта, затем смонтируйте его на машине.

Без этого вы можете наследовать родительскую группу с верхнего уровня, используя setgid бит в родительском каталоге (chmod g+s new_folder), но не рекурсивно (во вложенных папках).

Для разрешений папок используйте acl по умолчанию. Убедитесь, что acl находится в ваших параметрах монтирования:

tune2fs -l /dev/sdX | grep options

Если не добавить в /etc/fstab и перемонтируйте или добавьте его в параметры монтирования по умолчанию с помощью tune2fs -o acl.

Затем :

chmod 777 new_folder
setfacl -d -m u::rwx,g::rwx,o::rwx -m m::rwx new_folder

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

Что вы могли бы сделать, если вы контролируете процесс, создающий эти записи (как предлагали другие), - это установить umask равным 0 (более подробную информацию см. На странице руководства), однако это влияет на все объекты, созданные в этом сеансе, а не только на вещи под эту папку.