Jednou z prvních věcí, které člověk obvykle po instalaci systému bude
potřebovat jsou příkazy pro zakládání, mazání a editaci uživatelů a skupin.
7.7.2004 13:00 | o.k. | přečteno 155190×
Jedním z prvních příkazů, který obvykle po nainstalování systému a nejen po něm
budeme potřebovat je příkaz pro přidání uživatele do systému. Tak jako většina
názvů linuxových příkazů, tak i název tohoto příkazu lze poměrně snadno
odhadnout, protože výstižně označuje prováděnou akci. Příkaz pro přidání
uživatele do systému se nazývá useradd
. Následující praktické příklady objasní
použití příkazu useradd
. Ještě bych měl dodat, že ve většině Linuxových
distribucí naleznete i příkaz adduser
, který je pro mnohé uživatele
jednodušší, protože provádí přidání uživatele v interaktivním režimu a uživatel
si tak nemusí pamatovat jednotlivé volby příkazu. Já se zde však příkazem
adduser
zabývat nebudu, protože není standardní součástí všech distribucí a i
když ho pravděpodobně ve všech distribucích naleznete, tak v mnohých to bude
pouhý alias nebo symbolický link na příkaz useradd
, jenž si níže popíšeme.
Příklady příkazu useradd
:
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p "" bfu
Na vysvětlenou: vytvořili jsme uživatele bfu s domovským adresářem
/home/bfu
(který pokud neexistoval byl vytvořen a do něhož byl nakopírován obsah
adresáře /etc/skel
). Shell po přihlášení
má uživatel nastaven na /bin/bash
,
heslo je prázdné. Expirace účtu nebyla nastavena.
Protože jsme volbou -g [název skupiny]
nespecifikovali
skupinu přidruženou k
uživateli, tak byla nastavena defaultní skupina users
. Při použití této volby
nezapomeňte na to, že daná skupina již musí v systému existovat. Některé
distribuce používají skupinu, jejíž jméno je shodné se jménem uživatele,
ostatní distribuce používají již zmiňovanou skupinu users
.
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" \ -p "\$1\$MzA0W/ZA\$YcwNmliCCjGc8DSNO2BMr/" bfu
Založení uživatele s heslem v podobě MD5 hashe. Je potřeba "vyescapovat" znaky "$".
Příklad (funkční) s minimálním možným počtem parametrů
useradd -m -p "" bfu
Pro smazání uživatele slouží příkaz userdel
, který má jedinou volbu a tou je
volba -r
při jejímž použití dojde i ke smazání domovského adresáře uživatele
včetně fronty s maily.
userdel bfu
userdel -r bfu
pro smazání domovského adresáře uživatele. Pozor, tento příkaz smaže pouze domovský adresář a frontu s maily daného uživatele nikoliv však soubory jejichž je vlastníkem, různě roztroušené v systému v adresářích do nichž měl uživatel přístup zápisu.
Příkaz pro modifikaci uživatele se nazývá usermod
, díky jehož pomoci můžeme
editovat všechny volby, které byly dostupné v příkazu useradd
, proto se jimi
nebudu podrobněji zabývat a zmíním zde pouze volbu -G
, která umožňuje přidávat
uživatele do existujících skupin a samozřejmě jej i z daných skupin zase
vyjímat.
Následující příklad vše objasní:
usermod -G audio,video,cdrom,floppy bfu
Tímto příkazem přidáme uživatele do skupiny audio
, video
, cdrom
a floppy
. V
dalším příkladu jej
vyjmeme ze všech skupin kromě skupiny users
. Při vyjímání uživatele ze skupin
musíme vyjmenovat všechny skupiny ve kterých má uživatel zůstat. Z
nevyjmenovaných skupin bude uživatel vyjmut.
usermod -G users bfu
Další příkaz - passwd
- slouží především pro změnu hesla daného
uživatele, zároveň je jím však
možné měnit i některá další nastavení jako například informativní jméno
uživatele, shell po přihlášení, expirace účtu a interval mezi ohlášením
expirace účtu a úplným zablokováním účtu, kdy se uživatel již na svůj účet
nepřihlásí.
Uživatel root
může měnit hesla a nastavení všech účtů v systému. Obyčejný
uživatel může tímto příkazem změnit pouze heslo a to pouze u svého účtu.
Příklady použití:
passwd bfu
změna hesla (uživatelem root) uživatele bfu
passwd -S bfu
výstup tohoto příkazu bude vypadat například následovně:
bfu NP 05/30/2004 0 99999 7 -1
a znamená následující, uživatel bfu
má prázné heslo, poslední změna jeho hesla
byla provedena 30.5.2004, minimální doba pro změnu hesla (doba, po kterou není
možné heslo změnit) není stanovena,
maximální doba je na neurčito, období upozorňování na změnu hesla
je stanoveno na 7 dnů, doba neaktivity po vypršení platnosti hesla vedoucí k
automatickému zablokování účtu není nastavena.
Budeme-li chtít okamžitě zablokovat účet danému uživateli, provedeme to následovně:
passwd -l bfu
Odblokování provedeme příkazem
passwd -u bfu
Další příklad nastaví politiku, kdy další změna hesla uživatele po jeho provedení změny hesla nebude možná dříve jak za 14 dnů, toto změněné heslo se bude muset opět obměnit nejpozději za 90 dnů. Po 80 dnech od uplynutí změny hesla bude uživatel po přihlášení upozorňován, že mu za daný počet dnů vyprší platnost hesla a po 90 dnech bude po přihlášení ihned vybídnut ke změně hesla. Pokud se uživatel nepřihlásí v období mezi 90. dnem od změny hesla a 97. dnem, bude jeho účet nekompromisně zablokován. Odblokovat jej může jedině uživatel root jak jsme si ukázali výše.
passwd -n 14 -x 90 -w 10 -i 7 bfu
Pozn. po této změně bude status vypadat následovně
bfu NP 05/30/2004 14 90 10 7
Takto vypadá výpis u blokovaného účtu:
bfu L 05/30/2004 14 90 10 7
Na závěr k této sekci bych dodal ještě poznámku: příkazem passwd
jde měnit i
heslo pro skupinu, ale tato volba se jen zřídka používá.
Stejné funkce pro změnu expirace hesla má příkaz chage
a tak, aby se člověk
mohl pořád něčemu novému učit, má tento příkaz jiné parametry než příkaz
passwd
.
Stejnou změnu jako výše provedeme následovně:
chage -m 14 -M 90 -W 10 -I 7 bfu
Zmíním zde však dva parametry, které má navíc oproti příkazu passwd
. Prvním z
nich je parametr -l
, kterým si i jako běžný uživatel zjistíme platnost hesla a
dalších informací. Více ukáže příklad:
chage -l bfu
jehož výstup je velice informativní a přehledný:
Minimum: 14 Maximum: 90 Warning: 10 Inactive: 7 Last Change: kvě 30, 2004 Password Expires: srp 28, 2004 Password Inactive: zář 04, 2004 Account Expires: Never
Dalším užitečným parametrem, který příkazu passwd
chybí je parametr -d
, jímž
můžeme nastavit datum změny hesla jak ukáže náš příklad ve kterém posuneme
datum změny hesla z původního (30.5.2004) na nové (20.6.2004):
chage -d 2004-06-20 bfu
Další příkaz patří spíše do kategorie informativních - slouží k výpisu uživatelského ID, ID skupiny a ještě vypíše všechny skupiny jejichž je uživatel členem. Například při sdílených souborových systémech (NFS) je vhodné (pokud nepoužíváte pro přihlašování server NIS) udržovat na všech pořítačích stejná ID uživatele.
id bfu
Výstup bude vypadat následovně
uid=1004(bfu) gid=100(users) skupiny=100(users),24(cdrom),25(floppy),29(audio)
Příkaz groups
je podobný příkazu id
- vypisuje totiž skupiny jejichž je daný
uživatel členem.
groups bfu
Výstup je následující:
bfu : users cdrom floppy audio
Pro práci se skupinami slouží příkazy groupadd
, groupdel
, groupmod
.
Příkazem groupadd
vytváříme nové skupiny
groupadd bfu
Vytvoří skupinu bfu
a defaultně nastaví ID skupiny. ID skupiny můžeme vnutit i
ručně při použití parametru -g [číslo]
.
Příkaz groupdel
maže danou skupinu, jediným parametrem je název skupiny, kterou
chceme smazat.
Příkaz groupmod
slouží k modifikaci ID skupiny nebo jména skupiny.
groupmod -n franta bfu
Změní název skupiny bfu
na nový název franta
.
Myslím si, že základní operace s uživateli a skupinami tímto můžeme uzavřít. Vaše případné dotazy, připomínky a nápady očekávám v diskuzi.
Pokud se vám něco nepovedlo a nejste schopni to vrátit do původního stavu,
vždycky zbývá ještě jedna možnost. Můžete si soubory, kterých se dané změny
týkaly (konkrétně pak /etc/passwd
, /etc/shadow
a /etc/group
) otevřít v
textovém editoru a pokusit se o ruční opravu.