Portál AbcLinuxu, 22. července 2025 02:43
Sambu provozujeme jako fileserver, na CentOSu.
sdílená složka měla původní nastavení:
comment = sdil_slozka
path = /sdil_slozka
browsable = yes
public = no
write list = user1 user2 user3 user4 user5
create mask = 2770
directory mask = 2770
Práva souborů, vytvořený jednotlivými uživateli na MaxOSX (všichni jsou v jedné skupině group, sdílená složka má vlastníka user1:group), byly -rwxrw----. To je špatný, potřebuji -rwxrws--- (měl jsem za to, že toužený sgid bit tam dostanu hodnotou 2).
Pak jsem někde vyčetl nastavení:
force create mode = 2770a výsledkem jest -rwxrwx---, což také nestačí.
force directory mode = 2770
Lze samozřejmě cronem spouštět každou minutu chmod -R g+s /sdil_slozka, ale do toho se mi moc nechce :).
Kdokoliv jiný než vlastník daný soubor nepřeuloží, což je zásadní chyba, jelikož se všemi soubory musí pracovat všichni ze skupiny.
create mask
a force create mode
nepotřebují sgid
bit – tím nastavíte, že programy se budou spouštět pod skupinou souboru. Co vy ale potřebujete je nastavení sgid pro adresáře, aby vytvořené soubory měly vždy nastavenou jako skupinu stejnou skupinu, jako nadřazený adresář.
Problém se týká vnořených adresářů, nebo i adresářů hned pod sdíleným adresářem? Pokud se přihlásíte pod příslušným uživatelem přímo v Linuxu, můžete udělat na vytvořený adresář chmod g+s
a práva se nastaví správně? Mohly by vás také zajímat parametry inherit owner
a inherit permissions
.
sgid
bit na souboru znamená, že při spuštění takového souboru bude efektivní skupina spuštěného programu nastavena na skupinu, která vlastní soubor (místo na primární skupinu uživatele). To se hodí jenom pro případ, kdy chcete tyto soubory přímo na linuxu spouštět jako programy, což předpokládám nechcete.
Ke znovuuložení souboru by mělo stačit právo w
u společné skupiny. Pokud by znovuuložení znamenalo smazání původního a vytvoření nového souboru, musí mít uživatel (nebo skupina) právo zápisu do adresáře (aby mohl vytvořit nový soubor) a právo smazat původní soubor (tzn. právo zápisu do adresáře a nenastavený sticky
bit na adresář – aby mohl smazat i soubory, jejichž není vlastníkem).
Jen pro doplnění - skutečně stačí nastavit práva následovně:
chmod -R 660 /složka; chmod -R ug+X /složka
V nastavení smb.conf poté
create mask = 0660
directory mask = 0770
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.