Предоставить разрешение для новых созданных файлов внутри папки автоматически

У меня есть папка с разрешением 777, но когда я добавляю в нее какие-либо файлы или папки, разархивирую. Извлеченные файлы или права доступа к папкам никогда не меняются. Разрешение для папки назначения - 777, и я хочу, чтобы то, что я добавлю в эту папку, автоматически получит разрешение 777.

Когда я добавляю в эту папку какие-либо файлы или папки, распаковывая ZIP-файл, разрешение на извлеченную папку / файлы не меняется автоматически. Я всегда должен chmod для нового добавления файла / папки!

1 ответ

Решение

То, что вы хотите, называется 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 в / путь / к / папке. Это означает, что все файлы, созданные в этой папке, будут иметь rwx разрешение на username,


Чтобы установить разрешение для группы:

$ setfacl -m "g:groupname:rwx" /path/to/folder

Это установит rwx ACL, для группы groupname в / путь / к / папке. Это означает, что все файлы, созданные в этой папке, будут иметь rwx разрешение для группы groupname,


Чтобы установить разрешение для других:

$ setfacl -m "o:rwx" /path/to/folder

Это установит rwx ACL, для других в / путь / к / папке. Это означает, что все файлы, созданные в этой папке, будут иметь rwx разрешение для других.


Чтобы проверить разрешение:

$ getfacl /path/to/folder

Комбинировать acl

$ setfacl -m u:username:rwx,g:groupname:rwx,o:rwx /path/to/folder

ACL по умолчанию

 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 автоматически!

Удалить ACL

$ setfacl -b /path/to/folder

Это удалит все ACL из папки


в заключение

Если вы только пользователь в системе, я рекомендую использовать ACL по умолчанию.

$ setfacl -d -m u::rwx,g::rwx,o::rwx /path/to/folder

Это будет делать то, что вы хотите для / путь / к / папке

источники

archlinux - https://wiki.archlinux.org/index.php/Access_Control_Lists

help.ubuntu - https://help.ubuntu.com/community/FilePermissionsACLs

Другие вопросы по тегам