Předpokládejme, že mám dva uživatele Alice a Boba a skupinu GROUPNAME a složku foo
, oba uživatelé jsou členy GROUPNAME (používá Linux a ext3).
Pokud jako uživatel Alice uložím soubor pod foo
, oprávnění jsou:-rw-r--r-- Alice Alice
. Je však možné dosáhnout toho, aby byl každý soubor uložen v nějakém podadresáři foo
má oprávnění -rwxrwx--- Alice GROUPNAME
(tj. vlastník Alice, skupina GROUPNAME)?
Přijatá odpověď:
Přiřazené bity oprávnění můžete ovládat pomocí umask
a skupinu vytvořením adresáře setgid do GROUPNAME
.
$ umask 002 # allow group write; everyone must do this
$ chgrp GROUPNAME . # set directory group to GROUPNAME
$ chmod g+s . # files created in directory will be in group GROUPNAME
Všimněte si, že musíte provést chgrp
/chmod
pro každý podadresář; nešíří se automaticky (tj. ani existující, ani následně vytvořené adresáře pod setgid adresář bude setgid , ačkoli druhý bude ve skupině GROUPNAME
).
Všimněte si také, že umask
je atribut procesu a vztahuje se na všechny soubory vytvořené tímto procesem a jeho potomky (které zdědí umask
ve skutečnosti v jejich rodiči na fork()
čas). Uživatelé to možná budou muset nastavit v ~/.profile
a možná budete muset dávat pozor na věci nesouvisející s vaším adresářem, které vyžadují jiná oprávnění. moduly mohou být užitečné, pokud potřebujete různá nastavení při provádění různých věcí.
Můžete věci ovládat o něco lépe, když můžete používat POSIX ACL; mělo by být možné zadat jak masku oprávnění, tak skupinu a nechat je rozumně šířit. Podpora pro POSIX ACL je však poněkud variabilní.