Mám složku, jejíž oprávnění je nastaveno na 777, ale když přidám nějaké soubory nebo složku, rozbalím se do této složky. Extrahované soubory nebo oprávnění složky se nikdy nezmění. Oprávnění cílové složky je 777 a chci, aby to, co do této složky přidám, automaticky získalo oprávnění 777.
Když přidám nějaké soubory nebo složku extrahováním .zip v této složce, oprávnění k extrahované složce/souborům se automaticky nezmění. Vždy musím chmod pro nově přidat soubor/složku!
Přijatá odpověď:
To, co chcete, se nazývá ACL – Seznamy řízení přístupu.
Seznam řízení přístupu (ACL) poskytuje další, flexibilnější
mechanismus oprávnění pro systémy souborů. Je navržen tak, aby pomáhal s
oprávněními k souborům UNIX. ACL vám umožňuje udělit oprávnění jakémukoli uživateli
nebo skupině k jakémukoli prostředku disku.
acl
balíček by měl být již nainstalován, pro kontrolu spusťte:dpkg -s acl
.
Chcete-li používat ACL, měli byste je povolit pro váš souborový systém. Ale může být již povoleno . Chcete-li to zkontrolovat, použijte tune2fs -l
. Nahraďte /dev/sda6
pro váš systém:
$ tune2fs -l /dev/sda6 | grep "Default mount options:"
Default mount options: user_xattr acl
Pokud vidíte acl word – je již povoleno pro zařízení /dev/sda6
.
Pokud nevidíte acl word – spusťte tune2fs -o acl /dev/sda6
pro jeho aktivaci.
Chcete-li upravit ACL, použijte setfacl příkaz. Chcete-li přidat oprávnění, použijte setfacl -m .
Nastavení oprávnění pro uživatele:
$ setfacl -m "u:username:rwx" /path/to/folder
Tím nastavíte rwx
ACL pro uživatele username
do /cesta/do/složky. To znamená, že všechny soubory vytvořené v této složce budou mít rwx
oprávnění pro username
.
Nastavení oprávnění pro skupinu:
$ setfacl -m "g:groupname:rwx" /path/to/folder
Tím nastavíte rwx
ACL, pro skupinu groupname
do /cesta/do/složky. To znamená, že všechny soubory vytvořené v této složce budou mít rwx
oprávnění pro skupinu groupname
.
Nastavení oprávnění pro ostatní:
$ setfacl -m "o:rwx" /path/to/folder
Tím nastavíte rwx
ACL, pro ostatní do /cesta/do/složky. To znamená, že všechny soubory vytvořené v této složce budou mít rwx
povolení pro jiné.
Kontrola oprávnění:
$ getfacl /path/to/folder
Kombinovat acl
$ setfacl -m u:username:rwx,g:groupname:rwx,o:rwx /path/to/folder
Výchozí seznam 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.
Pokud tedy nastavíte výchozí ACL, bude to preferováno ACL. To znamená, že pokud nastavíte ACL pro user
nebo group
, nově vytvořený soubor zdědí výchozí acl stejně . Buďte opatrní s výchozím ACL.
Pro nastavení výchozího acl použijte -d
klíč,
$ setfacl -d -m u::rwx,g::rwx,o::rwx /path/to/folder
nebo použijte default
slovo
$ setfacl -m default:u::rwx,default:g::rwx,default:o::rwx /path/to/folder
Buďte opatrní s nastavením výchozího ACL. Například pokud je nastaven takto:
$ setfacl -d -m o:--x /path/to/folder
a nyní načtěte tento 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
Výchozí ACL pro skupinu a uživatele bude rwx
automaticky!
Odebrat ACL
$ setfacl -b /path/to/folder
Tím se odstraní všechny ACL ze složky
Konečně
Pokud jste pouze uživatelem systému, doporučuji použít výchozí ACL.
$ setfacl -d -m u::rwx,g::rwx,o::rwx /path/to/folder
To udělá to, co chcete pro /cesta/k/složce
Zdroje
archlinux – https://wiki.archlinux.org/index.php/Access_Control_Lists
help.ubuntu – https://help.ubuntu.com/community/FilePermissionsACLs