Portál AbcLinuxu, 12. května 2025 04:42
chmod
. Potrebuju, aby podadresare a soubory adresare sdedily skupinu. Nastavil jsem chmod g+s -R /moje/slozka
. Rekruzivne pro to, aby se zmena aplikovala i na puvodni podadresare a soubory. Ted mam ale prava i na souborech se S
. K cemu je to dobre u souboru? A neni to na skodu?
-p
nebo jej máte nastavený v aliasu pro cp
. vlastnictví skupiny se dědí na nově vytvořený soubor a adresář. Nicméně, s -p
po vytvoření cp
ještě manipuluje vlastnostmi souboru, aby odpovídali předloze. Řešením může v tomto případě výslovně říci, které přenést a které (všechny výchozí bez ownership
, tj:
cp --preserve=mode,timestamp [dalsi_parametry] <zdroj> <cil>Jinak též viz:
chmod(2)
a cp(1)
.
mode
... variantně můžete použít:
--no-preserve=ATTR_LIST don't preserve the specified attributesZde (tento a výše uvedený případ) konkrétně
--no-preserve=mode,ownership
Jak Vám níže psal kolega. Když Vám nějaký program (zde cp
) zavolá chmod
/fchmod
(chown
/fchown
/lchown
v případě výše popisovaných změn vlastníka/skupiny) syscall, tak je celkem jedno, jakou magii nastavíte pro výchozí vlastnosti nově vytvořeného souboru, protože soubor je sice vytvořen podle Vašich představ, ale jeho vlastnosti upraveny. Chování programu lze obvykle usměrnit pomocí předaných parametrů.
chmod(2)
.
Asi lepší metoda, jak docílit toho, čeho chcete (rekurze pouze na adresáře, je):
find /jmeno/adresare -type d -exec chmod g+s {} \;Odčinit to, co jste provedl pak můžete takto (ale pokud tam něco s SGID bylo a nevíte co, tak je to problém:
find /jmeno/adresare -type f -exec chmod g-s {} \;
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.