V kontextu mechanismu řízení přístupu (DAC) je přístup k systémovým prostředkům, souborům a adresářům založen na identitě uživatelů a na skupinách, kterých jsou členy. Tento typ řízení přístupu se nazývá „volný“, protože uživatel může provádět svá vlastní politická rozhodnutí (samozřejmě omezená svými vlastními oprávněními). V tomto tutoriálu uvidíme, jak přidat uživatele do skupiny a jaký je rozdíl mezi primární a sekundární skupinou na systému RHEL 8 / CentOS 8 Linux.
V tomto tutoriálu se naučíte:
- Jaký je rozdíl mezi primární a sekundární skupinou
- Jak přidat uživatele do skupiny pomocí příkazu usermod
- Jak přidat uživatele do skupiny přímo pomocí vigr
Jak přidat uživatele do skupiny na Rhel8
Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | RHEL 8 / CentOS 8 |
Software | K provedení tohoto návodu není potřeba žádný speciální software |
Jiné | Oprávnění ke spuštění příkazu s právy root. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Co je to skupina?
Linux, založený na Unixu, je víceuživatelský OS:existuje více uživatelů a sdílí zdroje v systému současně. Na nejjednodušší úrovni je přístup k těmto zdrojům řízen pomocí DAC
(discretionary access control) model. Přístup k souborům a adresářům je například založen na identitě uživatele a na groups
je členem. V tomto tutoriálu uvidíme, jak přidat uživatele do existující skupiny na počítači Red Hat Enterprise Linux 8.
Primární a sekundární skupiny
V současnosti Red Hat, stejně jako téměř všechny ostatní hlavní linuxové distribuce, používá schéma, které se nazývá UPG
, nebo User Private Group:pokaždé, když je vytvořen nový uživatel, automaticky se také vytvoří nová skupina se stejným jménem uživatele a uživatel se stane jejím jediným členem. Tomu se říká primary
nebo private
skupina.
Každý uživatel má svou vlastní primární skupinu pojmenovanou po něm, bez dalších členů. Toto nastavení umožňuje změnit výchozí umask
hodnota:tradičně to bylo 022
(to znamená 644
oprávnění pro soubory a 755
pro adresáře), nyní je obvykle nastaven na 002
(664
oprávnění pro soubory a 775
pro adresáře).
Protože je ve výchozím nastavení každý soubor nebo adresář vytvořený uživatelem vytvořen s primární skupinou tohoto uživatele, toto nastavení při zachování bezpečnosti (uživatel může stále upravovat pouze své vlastní soubory) zjednodušuje sdílení zdrojů a spolupráci mezi uživateli, kteří jsou členy stejnou skupinu, když je použit bit setgid, povolením oprávnění k zápisu pro skupinu.
Seznam skupin, kterých je uživatel členem, můžeme získat pomocí groups
příkaz:
$ groups egdoc wheel
Jak můžeme vidět z výstupu příkazu, aktuální uživatel, egdoc, patří do egdoc
group, která je vlastní primární skupinou, a na wheel
group, což mu umožňuje spouštět příkazy pomocí sudo
, a je to, co se nazývá secondary group
:volitelná skupina, která není ve výchozím nastavení přidružena k uživateli.
Přidejte uživatele do skupiny pomocí usermod
Zatímco uživatel je jediným členem své primární skupiny, můžeme chtít přidat uživatele do sekundární skupiny, třeba proto, abychom mu udělili přístup k nějakému druhu zdrojů. Řekněme například, že máme test
uživatele a chceme jej přidat do stávající skupiny linuxconfig
:Nejjednodušší a doporučený způsob, jak provést tento úkol, je pomocí usermod
příkaz:
$ sudo usermod -a -G linuxconfig test
Podívejme se na možnosti, které jsme použili. usermod
utility, dovolte nám upravit uživatelský účet; jeho používáním můžeme provádět širokou škálu operací, jako je změna domovského adresáře uživatele, nastavení data vypršení platnosti jeho účtu nebo jeho okamžité zamknutí. Příkaz nám také umožňuje přidat uživatele do existující skupiny. Možnosti, které jsme v tomto případě použili, jsou -G
(zkratka pro --groups
) a -a
, (což je zkrácená forma --append
).
Volba -G nebo –groups nám umožňuje poskytnout seznam doplňkových skupin oddělených čárkami, kterých by měl být uživatel členem. Jak jsme již řekli, každá poskytnutá skupina již musí v systému existovat. Jedna velmi důležitá věc, kterou je třeba si zapamatovat, je, že seznam poskytnutých skupin je interpretován odlišně bez ohledu na to, zda -a
možnost je také poskytnuta nebo ne:v prvním případě je seznam interpretován jako doplňkové skupiny, do kterých by měl být uživatel přidán navíc k těm, kterých je již členem; když -a
možnost není k dispozici, místo toho je seznam interpretován jako absolutní seznam skupin, kterých by měl být uživatel členem. Jak je uvedeno v manuálové stránce příkazu, v druhém případě, pokud je uživatel aktuálně členem skupiny, která není součástí seznamu poskytnutého příkazu, bude z této skupiny odstraněn!
Uživatel „test“ je nyní členem skupiny „linuxconfig“. Pojďme to ověřit:
$ sudo groups test test : test linuxconfig
Přidat uživatele přímo do skupiny
Pomocí usermod
je nejjednodušší způsob, jak přidat uživatele do skupiny. Pro úplnost nyní prozkoumáme jiný způsob provedení stejného úkolu pomocí vigr
linuxový příkaz. Tento příkaz nám umožňuje upravit /etc/group
a /etc/gshadow
soubory přímo a také je uzamknout, když jsou otevřené, aby se zabránilo jejich poškození a zajistila se konzistence.
„Stínová“ verze souboru (/etc/gshadow) se změní pouze tehdy, když -s
možnost se používá. Chcete-li přidat našeho „testovacího“ uživatele do skupiny „linuxconfig“ touto metodou, měli bychom spustit vigr
příkaz jako superuživatel:/etc/group
soubor se otevře ve výchozím editoru (obvykle vi):
[...] chrony:x:993: egdoc:x:1000: cgred:x:992: docker:x:991: apache:x:48: test:x:1001:test linuxconfig:x:1002: [...]
Syntaxe použitá k reprezentaci každé skupiny je následující:
group-name:group-password:group-id:users
Pole jsou oddělena dvojtečkou:první je název skupiny, druhé je „heslo“ skupiny (které se obvykle nenastavuje) a třetí pole je GID
nebo group-id. Poslední pole je čárkami oddělený seznam členů skupiny. Chcete-li přidat našeho „testovacího“ uživatele do skupiny „linuxconfig“, měli bychom toto pole upravit tak, aby řádek vypadal takto:
linuxconfig:x:1002:test
Jakmile je změna provedena, můžeme soubor uložit a zavřít. Na terminálu se objeví zpráva:
You have modified /etc/group. You may need to modify /etc/gshadow for consistency. Please use the command 'vigr -s' to do so.
Protože jsme změnili /etc/group
soubor, zpráva nám navrhuje změnit také související stínový soubor, což je /etc/gshadow
. Pro ty z vás, kteří nevědí, stínový soubor se používá k uložení zašifrované verze informací, které by nebylo bezpečné uložit ve formě prostého textu. Například, jak jsme viděli dříve, x
je hlášena v /etc/group
soubor, místo volitelného skupinového hesla; hašovaná verze hesla, pokud existuje, bude uložena ve stínovém souboru.
Nyní provedeme stejnou změnu, kterou jsme provedli dříve, v /etc/gshadow
soubor, aby se synchronizoval s /etc/group
. Jediné, co musíme udělat, je poskytnout -s
příznak do vigr
příkaz:
$ sudo vigr -s
Jakmile je soubor otevřen, provedeme potřebnou změnu:
linuxconfig:!::test
Poté musíme vynutit zápis tohoto souboru, protože je pouze pro čtení:při použití vi
, můžeme to udělat spuštěním w!
příkaz.
Alternativní způsob, jak udržet tyto dva soubory v synchronizaci, je použít grpconv
příkaz, který vytvoří /etc/gshadow
soubor z /etc/group
a volitelně z již existujícího /etc/gshadow
soubor:
$ sudo grpconv
V tomto okamžiku můžeme ověřit konzistenci mezi těmito dvěma soubory spuštěním:
$ sudo grpck
V tomto okamžiku by se neměl zobrazovat žádný výstup.
Závěry
V tomto tutoriálu jsme viděli rozdíl mezi primární a sekundární skupinou a jaké jsou jejich role v DAC
Modelka. Viděli jsme, jak můžeme přidat uživatele do skupiny pomocí usermod
příkaz, což je doporučený způsob, nebo přímo pomocí vigr
příkaz bezpečně upraví /etc/group
a /etc/gshadow
soubory. Ať už se k provedení tohoto administrativního úkonu rozhodnete použít jakýkoli postup, měli byste vždy věnovat maximální pozornost.