Я хочу, чтобы у папки было разрешение 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 (более подробную информацию см. На странице руководства), однако это влияет на все объекты, созданные в этом сеансе, а не только на вещи под эту папку.