V nedávném článku jsem představil chown příkaz, který se používá pro úpravu vlastnictví souborů v systémech. Připomeňme, že vlastnictví je kombinací uživatele a skupiny přiřazené k objektu. chgrp a newgrp Příkazy poskytují další pomoc při správě souborů, které potřebují zachovat vlastnictví skupiny.
Použití chgrp
chgrp příkaz jednoduše změní skupinové vlastnictví souboru. Je to stejné jako chown :
$chown :alan mynotes
nebo:
$chgrp alan mynotes
Rekurzivní
Několik dalších argumentů k chgrp může být užitečné jak na příkazovém řádku, tak ve skriptu. Stejně jako mnoho jiných příkazů Linuxu má chgrp rekurzivní argument -R . Budete to potřebovat, abyste mohli pracovat s adresářem a jeho obsahem rekurzivně, jak ukážu níže. Přidal jsem -v (podrobné ) argument takže chgrp mi říká, co dělá:
$ ls -l . conf
.:
drwxrwxr-x 2 alan alan 4096 Aug 5 15:33 conf
conf:
-rw-rw-r-- 1 alan alan 0 Aug 5 15:33 conf.xml
# chgrp -vR delta conf
changed group of 'conf/conf.xml' from alan to delta
changed group of 'conf' from alan to delta
Odkaz
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Referenční soubor (--reference=RFILE ) lze použít při změně skupiny souborů tak, aby odpovídala určité konfiguraci, nebo když skupinu neznáte, jako tomu může být při spouštění skriptu. Můžete duplikovat skupinu jiného souboru (RFILE ), označovaný jako referenční soubor. Chcete-li například vrátit zpět změny provedené výše (vzpomeňte si, že tečka [. ] odkazuje na aktuální pracovní adresář):
$ chgrp -vR --reference=. conf
Nahlásit změny
Většina příkazů má argumenty pro řízení jejich výstupu. Nejběžnější je -v pro aktivaci upovídaného a příkaz chgrp má podrobný režim. Má také -c (--změny ) argument, který přikazuje chgrp hlásit pouze v případě, že je provedena změna. Chgrp bude stále hlásit další věci, například když operace není povolena.
Argument -f (--tichý , -tichý ) se používá k potlačení většiny chybových zpráv. Použiji tento argument a -c v další sekci, takže zobrazí pouze skutečné změny.
Zachovat kořen
Kořen (/ ) souborového systému Linux by se mělo zacházet s velkým respektem. Pokud dojde na této úrovni k chybě velení, následky mohou být hrozné a systém může zůstat zcela zbytečný. Zvláště když spouštíte rekurzivní příkaz, který provede jakoukoli změnu – nebo v horším případě vymazání. Příkaz chgrp má argument, který lze použít k ochraně a zachování kořenového adresáře. Argument je --preserve-root . Pokud je tento argument použit s rekurzivním příkazem chgrp v kořenovém adresáři, nic se nestane a místo toho se zobrazí zpráva:
[root@localhost /]# chgrp -cfR --preserve-root a+w /
chgrp: it is dangerous to operate recursively on '/'
chgrp: use --no-preserve-root to override this failsafe
Tato možnost nemá žádný účinek, pokud není použita ve spojení s rekurzivní. Pokud však příkaz spouští uživatel root, oprávnění / se změní, ale ne u ostatních souborů nebo adresářů v něm:
[alan@localhost /]$ chgrp -c --preserve-root alan /
chgrp: changing group of '/': Operation not permitted
[root@localhost /]# chgrp -c --preserve-root alan /
changed group of '/' from root to alan
Překvapivě se zdá, že to není výchozí argument. Možnost --no-preserve-root je výchozí. Pokud výše uvedený příkaz spustíte bez možnosti „zachovat“, bude ve výchozím nastavení nastaven režim „bez zachování“ a možná se změní oprávnění k souborům, které by se neměly měnit:
[alan@localhost /]$ chgrp -cfR alan /
changed group of '/dev/pts/0' from tty to alan
changed group of '/dev/tty2' from tty to alan
changed group of '/var/spool/mail/alan' from mail to alan
O newgrp
The newgrp umožňuje uživateli přepsat aktuální primární skupinu. newgrp může být užitečný, když pracujete v adresáři, kde všechny soubory musí mít stejné skupinové vlastnictví. Předpokládejme, že máte adresář s názvem share na vašem intranetovém serveru, kde různé týmy ukládají marketingové fotografie. Skupina je sdílet . Jak různí uživatelé umísťují soubory do adresáře, primární skupiny souborů se mohou promíchat. Kdykoli jsou přidány nové soubory, můžete spustit chgrp Chcete-li opravit případné záměny, nastavte skupinu na sdílení :
$ cd share
ls -l
-rw-r--r--. 1 alan share 0 Aug 7 15:35 pic13
-rw-r--r--. 1 alan alan 0 Aug 7 15:35 pic1
-rw-r--r--. 1 susan delta 0 Aug 7 15:35 pic2
-rw-r--r--. 1 james gamma 0 Aug 7 15:35 pic3
-rw-rw-r--. 1 bill contract 0 Aug 7 15:36 pic4
Pokryl jsem setgid režimu v mém článku o chmod příkaz. To by byl jeden způsob, jak tento problém vyřešit. Předpokládejme však, že bit setgid nebyl z nějakého důvodu nastaven. V této situaci je užitečný příkaz newgrp. Než uživatelé vloží soubory do sdílení adresář, mohou spustit příkaz newgrp share . Tím se jejich primární skupina přepne na sdílení takže všechny soubory, které vloží do adresáře, budou mít skupinu automaticky sdílet , spíše než primární skupina uživatele. Po dokončení se uživatelé mohou přepnout zpět do své běžné primární skupiny pomocí (například):
newgrp alan
Závěr
Je důležité pochopit, jak spravovat uživatele, skupiny a oprávnění. Je také dobré znát několik alternativních způsobů, jak obejít problémy, se kterými se můžete setkat, protože ne všechna prostředí jsou nastavena stejně.