У меня есть папка, какое разрешение установлено на 777, но когда я добавляю любые файлы или папку, разархивировавшую в той папке. Извлеченные файлы или разрешение папки никогда не изменяются. Разрешение папки назначения 777, и я хочу то, что я добавлю в той папке, автоматически получит разрешение 777.
Когда я добавлю любые файлы или папку путем извлечения .zip в той папке, извлеченное разрешение папки/файлов не изменится автоматически. Я всегда имею к chmod для, недавно добавляют файл/папку!
То, что Вы хотите, называют ACL - Списки управления доступом.
Список управления доступом (ACL) обеспечивает дополнительный, более гибкий механизм разрешения для файловых систем. Это разработано для помощи с полномочиями файла UNIX. ACL позволяет Вам давать полномочия для любого пользователя или группы к любому дисковому ресурсу.
acl
пакет должен быть уже установлен, чтобы проверить, что он работает: dpkg -s acl
.
Для использования ACL, необходимо включить его для файловой системы. Но это может быть уже включено. Для проверки его используют tune2fs -l
. Замена /dev/sda6
для Вашей системы:
$ tune2fs -l /dev/sda6 | grep "Default mount options:"
Default mount options: user_xattr acl
Если Вы видите acl слово - оно уже включено для устройства /dev/sda6
.
Если Вы не видите, что acl слово - работает tune2fs -o acl /dev/sda6
включить его.
Изменить использование ACL setfacl команда. Для добавления полномочий используют setfacl-m.
$ setfacl -m "u:username:rwx" /path/to/folder
Это установит rwx
ACL, для пользователя username
к/path/to/folder. Это означает, что все файлы, созданные в этой папке, будут иметь rwx
разрешение для username
.
$ setfacl -m "g:groupname:rwx" /path/to/folder
Это установит rwx
ACL, для группы groupname
к/path/to/folder. Это означает, что все файлы, созданные в этой папке, будут иметь rwx
разрешение для группы groupname
.
$ setfacl -m "o:rwx" /path/to/folder
Это установит rwx
ACL, для другого к/path/to/folder. Это означает, что все файлы, созданные в этой папке, будут иметь rwx
разрешение для другого.
$ getfacl /path/to/folder
$ setfacl -m u:username:rwx,g:groupname:rwx,o:rwx /path/to/folder
The new object inherits the default ACL of the containing directory as its
access ACL.
If no default ACL is associated with a directory, the mode parameter to the func‐
tions creating file objects and the file creation mask (see umask(2)) are used to
determine the ACL of the new object:
The new object is assigned an access ACL containing entries of tag types
ACL_USER_OBJ, ACL_GROUP_OBJ, and ACL_OTHER. The permissions of these entries
are set to the permissions specified by the file creation mask.
Таким образом, при установке ACL по умолчанию это был бы предпочтенный ACL. Это означает если установленный ACL для user
или group
, новый созданный файл наследовал бы значение по умолчанию acl так или иначе. Будьте тщательно с ACL по умолчанию.
Установить значение по умолчанию acl использование -d
ключ,
$ setfacl -d -m u::rwx,g::rwx,o::rwx /path/to/folder
или используйте default
слово
$ setfacl -m default:u::rwx,default:g::rwx,default:o::rwx /path/to/folder
Будьте тщательно с установкой ACL по умолчанию. Например, если установлено как это:
$ setfacl -d -m o:--x /path/to/folder
и теперь выберите этот ACL
$ getfacl /path/to/folder
# file: path/to/folder
# owner: c0rp
# group: c0rp
user::rwx
group::rwx
other::--x
default:user::rwx
default:group::rwx
default:other::--x
ACL по умолчанию для группы и пользователя будет rwx
автоматически!
$ setfacl -b /path/to/folder
Это удалит весь ACL из папки
Если Вы - только пользователь в системе, я рекомендую значению по умолчанию использования ACL.
$ setfacl -d -m u::rwx,g::rwx,o::rwx /path/to/folder
Это сделает то, что Вы хотите для/path/to/folder
archlinux - https://wiki.archlinux.org/index.php/Access_Control_Lists
help.ubuntu - https://help.ubuntu.com/community/FilePermissionsACLs