Uživatel je osoba, které je v linuxu zřízen uživatelský účet, tedy obdržela určitá práva k přístupu do systému pomocí uživatelského jména (login
) a hesla (password
).
Uživatele do systému přidává správce (root). Pro konkrétnío uživatele může nastavit poměrně přesně definovatelný soubor práv, přiřadit jej k určitým skupinám (group), které rozšiřují uživatelovo oprávnění o další možnosti.
Uživatelské jméno je trvalé, heslo může být nastaveno dočasné a uživatel si ho v tom případě musí periodicky měnit (je na to předem upozorněn). Pokud to neudělá včas, je mu přístup do systému zablokován.
Systém vytvoří pro každého uživatele tzv. domovskou složku v adresáři /home
. Uživatel s přihlašovacím jménem jarda
tedy bude mít vlastnická práva na složku /home/jarda
a všechny podadresáře a soubory v ní uložené. Do složky /home/pepa
se ovšem nedostane, ledaže by pepa
umožnil nastavením nějakého podadresáře pro čtení nebo dokonce zápis všem.
Systém uživatele nerozlišuje podle uživatelského jména, ale podle tzv. UID
(User Identification Digit), identifikačního čísla uživatele. Z toho plyne několik souvislostí např. při instalaci nových verzí nebo jiné distibuce.
Přepněte se do terminálu nebo do Konzole, což je emulátor terminálu a přihlásíte se jako správce.
Spustíte program useradd
(nebo adduser
, což je totéž). Jméno si snad zapamatujete - user
= uživatel, add
= anglicky přidat. Jde o prográmek vyskytující se snad v každé linuxové distribuci. Bez parametrů vám vypíše možnosti. Vy zadáte:
useradd prihlasovaci_jmeno_uzivatele
tedy například useradd pepa
V tu chvíli se podívejte do /home
, a uvidíte, že vznikl nový podadresář /home/pepa
, což je Pepův domovský adresář. Do nového adresáře byly zkopírovány soubory z /etc/skel
.
POZOR!! Pokud současně s uživatelem nezadáte heslo, příkaz vytvoří v /etc/passwd
místo hesla hvězdičku a uživatel tím bude zablokován. Lepší je tedy zadat useradd
přímo s parametry, které nastaví co třeba nebo vzápětí použít příkaz passwd.
Příklad: | Popis: |
useradd user1 | - vytvoří nového uživatele |
useradd -c "Josef Kaspar" -d /home/pepa -s /bin/bash -g users pepa | - vytvoří uživatele s přihlašovacím jménem pepa , vytvoří domovský adresář /home/pepa , plné jméno v GECOS poli Josef Kaspar , primární shell bude /bin/bash , přidá ho do skupiny users v /etc/group |
useradd -c "Name Surname" -g admin -d /home/user1 -s /bin/bash user1 | - vytvoří nového uživatele a přiřadí ho do skupiny admin |
Chcete-li pro uživatele zadat i nějaké výchozí heslo, nazvat domovský adresář jinak, nastavit vypršení hesla po určité době atd. atd., využijte parametrů:
Parametr: | Popis: |
-b , --base-dir BASE_DIR | - základní adresář pro nového uživatele, obvykle /home |
-c , --comment COMMENT | - nastaví položku GECOS pro nového uživatele (komentář) |
-d , --home-dir HOME_DIR | - domovský adresář uživatele (obvykle podadresář v /home ) |
-D , --defaults | - zobrazí nebo uloží změny jako defaultní (výchozí) konfiguraci useradd |
-e , --expiredate EXPIRE_DATE | - nastaví vypršení platnosti účtu do EXPIRE_DATE |
-f , --inactive INACTIVE | - nastaví časově omezenou platnost hesla do doby uvedené v INACTIVE |
-g , --gid GROUP | - přiřazení uživatele příslušné skupině (skupinám) |
-G , --groups GROUPS | - seznam skupin v nichž je uživatel zařazen |
-h , --help | - zobrazí nápovědu (anglicky) |
-k , --skel SKEL_DIR | - zadat alternativní skel adresář |
-K , --key KEY=VALUE | - přepíše výchozí /etc/login.defs |
-m , --create-home | - vytovří domovský adresář pro nového uživatele |
-M | - nevytvoří domovský adresář pro nového uživatele |
-n | - nevytvoří skupinu stejného jména jako uživatel |
-o , --non-unique | - vytvoří uživatele se stejným UID , které je v systému již použito |
-p , --password HESLO | - použije pro nového uživatele zadané heslo |
-r | - vytvoří systémový účet |
-s , --shell SHELL | - definuje přihlašovací shell pro nového uživatele |
-u , --uid UID | - nastaví UID uživatele „natvrdo“ |
příkaz mění soubory související s přístupem do systému a maže všechny položky související s příslušným uživatelským jménem. Aby vše proběhlo správně, musí zadávané přihlašovací jméno existovat. user
= uživatel; del
= zkratka delete, mazat. userdel nemůže odebrat účet uživatele, který je přihlášen. Uživatel musí být nejdříve odpojen.
Jako root napíšete:
userdel -r pepa
a v systému přestane existova uživatel pepa
a díky parametru -r
také jeho domovský adresář.
userdel -r user1 - smaže uživatele (-r odstraní i domovský adresář) |
Parametr: | Popis: |
-r | - soubory v uživatelově domovském adresáři budou smazány, stejně tak uživatelův adresář pro došlou poštu adt. Uživatelovy soubory umístěné na jiných místech systému musí být nalezeny a smazány ručně |
Soubory, které userdel
mění:
/etc/group | - informace o účtech skupin |
/etc/passwd | - informace o účtech uživatelů |
/etc/shadow | - bezpečnostní informace u účtech uživatelů (hesla ap) |
Návratové kódy: | Popis: |
0 | - úspěšný průběh |
1 | - nelze aktualizovat soubor s hesly |
2 | - nesprávný syntaxe příkazu |
6 | - uvedený uživatel neexistuje |
8 | - uživatel je momentálně připojen |
10 | - nelze aktualizovat soubor /etc/group |
12 | - nelze odstranit domovský adresář |
Pro tuhle potřebu je zde prográmek usermod
(user
= uživatel; mod
= zkratka od modify, tedy změnit).
Pomocí usermod
můžete změnit jakoukoli položku v nastavení uživatele; od zákazu přístupu, přes změnu domovského adresáře, hesla až třebas po změnu přihlašovacího jména.
usermod
neprovede žádné změny u aktuálně přihlášeného uživatele. Musíte také nejprve ukončit všechny procesy spuštěné uživatelem (nebo běžící pod jeho UID
) dříve, než změníte uživatelovo UID
.
Záznamy uživatele v tabulce crontab je nutné provést ručně.
Ručně musíte provést změny vlastníka jakéhokoli procesu ručně. Musíte také provést potřebné změny v nastavené NIS
pro NIS server.
usermod [-c kommentář] [-d home_dir [-m ]] [-e datum_expirace] [-f inactive_days] [-g úvodní_skupina][-G skupina1 [ ,skupina2,... , [skupinaN] [-a] ]] [-l přihlašovací_jméno] [-p heslo] [-s shell][-u uid [-o ]] [-L -U] jméno
Příkaz: | Popis: |
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 | - změní atributy uživatele |
Parametr: | Popis: |
-c comment | - nastaví položku komentáře v souboru hesel uživatelů na novou hodnotu. Normálně ji lze modifikovat pomocí utility chfn |
-d home_dir | - nastaví nový domovský adresář. Společně s parametrem -m vytvoří nový adresář a obsah současného domovského adresáře do něj přesune a pokud neexistuje, pak vytvoří prázdný |
-e expire_date | - v zadaném datumu přestane být uživatelský účet aktivní. Datum musí mít formát RRRR-MM-DD , tedy např. 2012-09-19 pro 19. září 2012 |
-f inactive_days | - číslo zde zadané uvádí, po kolika dnech přestane být platné příhlašovací heslo a účet s nezměněným heslem bude zakázán. Hodnota 0 zakáže účet záhy po vypršení hesla, hodnota -1 tuto vlastnost zakáže. Defaultní hodnota je -1 |
-g initial_group | - názvy skupin nebo jejich čísla (GID ) v nichž je uživatel přihlášen. Jméno a skupina musí existovat. Číslo skupiny musí existovat a odkazovat na existující skupinu. Defaultní číslo skupiny je 1 |
-G group1[ ,group2,…, [groupN]]] | - seznam podporovaných skupin a jejich čísel připojených k uživateli. Skupiny jsou odděleny čárkou, mezery nejsou uvažovány. Zakázené skupiny lze definovat parametrem -g . Jestliže není současný uživatel ve výpisu skupin uveden, uživatel byl ze skupiny odebrán. Toto chování lze zakázet změnou nastavení pomocí parametru -a , čímž bude uživatel přidán do současného podporovaného seznamu skupin |
-l login_name | - provede změnu přihlašovacího jména pro zadaného uživatele. Nic jiného změněho nebude. Je na zvážení, zda nezměnit také název domovského adresáře podle jména uživatele |
-L | - uzamkne uživatelské heslo, přidá příznak ! před heslo, čímž zakáže jeho použití. Nelze použít současně s parametry -p nebo -U |
-o | - parametr umožní změnit UID na neunikátní hodnotu |
-p passwd | - šifrované heslo, vrácené kryptem |
-s shell | - jméno přihlašovacího shellu uživatele. Nastavení této položky bez hodnoty způsobí načtení defaultního přihlašovacího shellu |
-u uid | - číselná hodnota uživatelského ID . Tato hodnota musí být v systému unikátní, pro neunikátní UID použijte parametr -o . Hodnota nesmí být záporná. Hodnoty 0 a 999 jsou obvykle rezervovány pro systémové účty. Soubory patřící uživateli umístěné v adresářovém stromu počínajíce domovským adresářem uživatele budou automaticky přiřazeny uživateli nového UID . Soubory mimo tento adresářový strom musí být nastaveny ručně |
-U | - odemkne uživatelské heslo. Odejme příznak ! zapsaný před uloženým heslem. Nelze použít společně s parametry -p nebo -L |
Vedle univerzálně použitelného usermod
můžete pro některé jednotlivé a časté změny použít jednoúčelové příkazy, jako jsou:
passwd - pro změnu hesla aktuálního uživatele
chage - pro nastavení data, kdy vyprší platnost hesla zadaného uživatele
newgrp - pro nastavení nové výchozí skupiny do ní patří uživatel, platí pro všechny nově vytvořené soubory
je v systému linux všemocná osoba s právy k čemukoli. Může cokoli v systému změnit, přenastavit, vytvořit, smazat atd atd. Proto je velmi rozumné VYUŽÍVAT SPRÁVCOVSKÝ ÚČET POUZE K NUTNÝM NASTAVENÍM SYSTÉMU, a běžnou práci vykonávat jako řadový uživatel. Vyhnete se tak mnoha možným rizikům a těžkostem.
Účet správce (root) je vytvořen při instalaci systému, při instalaci jste také vyzváni k přiřazení hesla a dalších základních nastavení.
změna uživatelského hesla
passwd [-k] [-l] [-u[-f]] [-d] [-n min_dnů] [-x maxdnů] [-w varování_dnů] [-i neaktivní_dnů] [-S][--stdin] [uživatelské_jméno]
Příkaz: | Popis: |
passwd | - změní heslo |
passwd user1 | - změní heslo uživatele user1 (může využít jen root) |
Parametr: | Popis: |
-k , --keep-tokens | - ponechat autentizační tokeny, které nevypršely |
-d , --delete | - zrušit heslo zadaného účtu (pouze root) |
-l , --lock | - uzamknout zadaný účet (pouze root) |
-u , --unlock | - odemknout zadaný účet (pouze root) |
-f , --force | - vynutit operaci |
-x , --maximum=DAYS | - maximální doba platnosti hesla (pouze root) |
-n , --minimum=DAYS | - minimální doba platnosti hesla (pouze root) |
-w , --warning=DAYS | - počet dní zobrazení varování před vypršením platnosti hesla (pouze root) |
-i , --inactive=DAYS | - počet dní po vypršení hesla, kdy bude účet zablokován (pouze root) |
-S , --status | - zobrazit stav hesla daného účtu (pouze root) |
--stdin | - číst nové tokeny ze stdin (pouze root) |
-? , --help | - zobrazí nápovědu příkazu |
--usage | - zobrazit krátkou zprávu o použití |
Příkaz: | Popis: |
chage -E 2012-12-31 user1 | - nastaví kdy vyprší heslo uživatele user1 |
příkaz pro změnu popisných informací o uživateli. Tyto informace jsou uloženy v souboru /etc/passwd
, a jsou zobrazovány programem finger
.
Příkaz finger
zobrazí informace měněné příkazem chfn
. Lze zobrazit pět položek: plné jméno, název pracovniště a telefon a soukromý telefon.
V interaktivním režimu zobrazí chfn
požadovanou položku a umožní vložit novou informaci, nebo ponechat původní. Pokud není zadáno/zobrazeno nic, zůstane hodnota prázdná. Vložíte-li do parametru none
, hodnota bude vymazána.
chfn [ -f full-name ] [ -o office ] [ -p office-phone ] [ -h home-phone ] [ -u ] [ -v ] [ username ]
Příkaz: | Popis: |
chfn -f | - plné jméno uživatele |
chfn -p | - telefon do kanceláře |
Parametr: | Popis: |
-f , --full-name | - uloží plné jméno uživatele |
-o , --office | - číslo kanceláře |
-p , --office-phone | - číslo telefonu do kanceláře |
-h , --home-phone | - soukromý telefon |
-u , --help | - vypíše nápovědu |
-v , --version | - vypíše informaci o verzi programu |
příkaz pro změnu přihlašovacího shellu
pwck
ověří správnost souboru /etc/passwd
a existenci uživatelů
je příkaz pro změnu přihlášeného uživatele.
Například je přihlášen pepa
, ale potřeboval by nahlédnout do domovského adresáře své ženy pepina
. Použije příkaz su
takto:
su pepina
zadá její heslo, které se nevypisuje na obrazovku (bezp. opatření proti odečtení počtu znaků hesla) a potvrdí Enter.
Tím se v Konzoli či terminálu stala z pepa
→ pepina
a všechny příkazy a programy budou fungovat, jako by je spustila pepina
, vytvořené soubory budou patřit uživateli pepina
atd. atd.
Zadáte-li příkaz su
bez parametrů, v dalším kroku je očekáváno heslo správce. Pokud ho zadáte, pak se stanete správcem (rootem).
Zde se především používá obdoba příkazů user*
, tedy group*
s obdobnou funkcí.
je příkaz pro vytvoření nové skupiny. Upravuje soubor /etc/group. Příkaz groupadd
vytvoří účet nové skupiny s použitím hodnot zadaných v příkazovém řádku nebo přednastavených systémem. Nová skupna bude vložena do potřebných systémových souborů.
groupadd [-g gid [-o ]] [-f] [-r] [-K KEY=VALUE] skupina
Příkaz: | Popis: |
groupadd jmeno_skupiny | - vytvoří novou skupinu |
Parametr: | Popis: |
-f | - tato volba způsobí uspěšné ukončení příkazu v případě, že zadávaná skupina již existuje. Společně s parametrem -g , je-li zvolen již použitý GID , bude vybrán a použit nejbližší (unikátní) GID (např. -g je vypnutý) |
-g GID | - zadaný GID je číselná hodnota stanovující ID skupiny. Hodnota musí být jedinečná, v opačném případě použijte parametr -o . Hodnota nesmí být záporná. Protože hodnoty 0 až 499 jsou používány pro systémové účty, použijte číslo 500 a větší a zároveň větší než největší ID číslo skupiny již použité. |
-K KEY=HODNOTA | - přepíše v /etc/login.defs defaultní hodnoty (GID_MIN , GID_MAX a další). Vícenásobné použití parametru -K může například vypad takto: -K GID_MIN=100 -K GID_MAX=499 Poznámka: -K GID_MIN=10,GID_MAX=499 nebude fungovat. |
-o | - přidá skupinu s již použitým (neunikátním) GID |
-r | - se používá pro vytvoření systémového účtu. Bude automaticky vybrán a použit přvní nepoužitý GID nižší než 499 pokud není současně využit parametr -g |
Příkaz: | Popis: |
/etc/group | - informace o skupinových účtech |
/etc/gshadow | - bezpečné informace o skupinových účtech |
Návratové hodnoty: | Popis: |
0 | - úspěch |
2 | - špatná syntaxe programu |
3 | - zadána špatná hodnota parametru |
4 | - GID není jedinečný (není-li použit parametr -o ) |
9 | - název skupiny není jedinečný |
10 | - nelze aktualizovat soubor skupin (/etc/group) |
Příkaz: | Popis: |
groupdel jmeno_skupiny | - smaže skupinu |
Příkaz: | Popis: |
groupmod -n new_group_name old_group_name | - přejmenuje skupinu |
grpck
ověří správnost souboru /etc/group
a existenci skupin
Příkaz: | Popis: |
newgrp group_name | - přihlásí se do nové skupiny, změní výchozí skupinu nově vytvářených souborů |