Každý uživatel v systému Linux má jedinečné ID uživatele (UID ), což je běžné celé číslo, a přidružené uživatelské jméno. Uživatelé se přihlašují pomocí svých uživatelských jmen, ale systém používá přidružená UID. Každý uživatelský účet má také domovský adresář a přihlašovací shell. Když se uživatelé přihlásí, jsou umístěni do svého domovského adresáře a spustí se jejich přihlašovací shell. Všechny tyto informace o uživatelském účtu jsou uloženy v /etc/passwd soubor.
Každý uživatel také patří do jedné nebo více skupin. Do stejné skupiny mohou být přiřazeni různí uživatelé. Přístup lze udělit skupině a všem členům skupiny jsou udělena stejná přístupová oprávnění. Každý skupinový účet v systému Linux má jedinečné ID skupiny (GID ) a název přidružené skupiny. Informace o skupině jsou uloženy ve složce /etc/group soubor.
RedHat Linux používá schéma soukromé skupiny uživatelů (UPG) . Po přidání nového uživatelského účtu se také vytvoří nová soukromá skupina uživatele. Soukromá skupina uživatele má stejné jméno jako uživatel a nový uživatel je jediným členem této skupiny.
Uživatelé i skupiny používají stínová hesla. Hesla jsou hašována a uložena v různých souborech /etc/shadow pro uživatele a /etc/gshadow pro skupiny. Zabezpečení se zlepšuje ukládáním hashovaných hesel do „stínových“ souborů, protože tyto soubory jsou čitelné pouze pro uživatele root. Použití stínových hesel také poskytuje parametry stárnutí hesel a umožňuje vynutit zásady zabezpečení pomocí souboru /etc/login.defs. Uživatelské účty a účty skupin může přidávat, upravovat nebo odstraňovat pouze uživatel root.
Konfigurační soubory uživatelů a skupin
/etc/passwd
Když je přidán nový uživatel, informace se uloží jako jeden řádek oddělený dvojtečkou v /etc/passwd. Zde je příklad položky v tomto souboru:
# tail -1 /etc/passwd test:x:1001:1001:test user:/home/test:/bin/bash
Následující text popisuje tuto položku:
Pole | Popis |
---|---|
test | Uživatelské jméno |
x | Označuje, že se používají stínová hesla |
1001 | UID, začínají na 1000 a zvyšují se o 1 pro každého nově přidaného uživatele. UID pod 1000 jsou vyhrazena pro systémové použití. |
1001 | GID primární skupiny uživatele. Ty začínají 1000 a zvyšují se o 1 pro každou novou skupinu. Uživatelé mohou patřit do více než jedné skupiny. |
testovat uživatele | Informace GECOS (General Electric Comprehensive Operating System), používané pouze pro informační účely, jako je celé jméno |
/home/test | Domovský adresář tohoto uživatele |
/bin/bash | Výchozí prostředí pro tohoto uživatele |
/etc/shadow
Se stínovými hesly se při vytvoření nového uživatele automaticky přidá nový záznam do /etc/shadow. Tento soubor může zobrazit pouze uživatel root. Zde je příklad položky v tomto souboru:
# tail -1 /etc/shadow test:$6$XBCDBQ...:17610:0:99999:7:::
Následující text popisuje tuto položku:
Pole | Popis |
---|---|
test | Uživatelské jméno |
$6$XBCDBQ… | Hodnota hashovaného hesla (zobrazena částečná hodnota). Samotné heslo ve formátu prostého textu není uloženo na disku. Algoritmus vytvoří z hesla jedinečný řetězec. |
17610 | Počet dní od změny hesla (počítáno ve dnech od 1. ledna 1970). |
0 | Počet dní, které musí uplynout, než uživatel musí heslo změnit. |
99999 | Maximální počet dní od změny hesla, po které lze heslo používat. Po uplynutí této doby musí uživatel heslo změnit. |
7 | Počet dní před datem vypršení platnosti, kdy je uživatel upozorněn na nevyřízené zásady změny hesla. Pokud není heslo změněno po tomto počtu dní, uživatelský účet je uzamčen. |
Další pole je prázdné, ale používá se k uložení posledního data uzamčení účtu (počítáno ve dnech od 1. ledna 1970). Poslední pole je také prázdné, ale není použito.
/etc/group
Protože Oracle Linux používá schéma UPG, při přidání nového uživatele se automaticky vytvoří nový záznam v /etc/group. Název skupiny je stejný jako uživatelské jméno. Zde je příklad položky v tomto souboru:
# tail -1 /etc/group test:x:1000:test
Následující text popisuje tuto položku:
Pole | Popis |
---|---|
test | Název skupiny |
x | Označuje, že se používají stínová hesla |
1000 | GID |
test | Seznam uživatelů, kteří jsou členy skupiny |
Každá skupina může mít více uživatelů. Uživatelé mohou také patřit do více než jedné skupiny. GID uložené v záznamu uživatele v /etc/passwd je primární skupinou uživatele.
/etc/gshadow
V tomto souboru jsou uložena hesla hašovaných skupin. Skupinová hesla se však používají jen zřídka. Zde je příklad položky v tomto souboru:
# tail -1 /etc/gshadow test:!!::test
Následující text popisuje tuto položku:
Pole | Popis |
---|---|
test | Název skupiny |
x | Hašované heslo. !! Označuje, že účet je uzamčen. |
Oracle | Seznam uživatelů, kteří jsou členy skupiny |
Poslední dvě pole se používají k označení správců a členů.
Přidání uživatelského účtu
useradd
Pomocí příkazu useradd přidejte uživatelský účet. Syntaxe je:
# useradd [options] user_name
Při vytváření nového uživatele bez jakýchkoli možností se použijí výchozí nastavení. Příklad:
# useradd john # tail -1 /etc/passwd john:x:501:501::/home/john:/bin/bash
Useradd také ve výchozím nastavení vytváří uzamčený uživatelský účet. Chcete-li odemknout účet a přiřadit heslo, spusťte příkaz passwd user_name jako root. Příklad:
# passwd john
Příkaz passwd user_name vás vyzve k zadání nového hesla. V závislosti na složitosti hesla můžete být upozorněni, že heslo je špatné (příliš krátké nebo příliš jednoduché). Chcete-li pokračovat a odemknout uživatelský účet, zadejte znovu stejné heslo. Stejný příkaz passwd se používá ke změně hesla. Uživatel root může vždy změnit heslo uživatele. Uživatelé jsou nejprve vyzváni k zadání aktuálního hesla.
Výchozí nastavení
Výchozí nastavení pro nového uživatele lze zobrazit a upravit pomocí volby -D. Příklad:
# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
NEAKTIVNÍ Direktiva nastavuje počet dní po vypršení platnosti hesla do uzamčení účtu. Hodnota 0 uzamkne účet, jakmile vyprší platnost hesla. Hodnota -1 tuto funkci deaktivuje. Obsah SKEL (/etc/skel ve výchozím nastavení) se při vytvoření uživatelského účtu zkopírují do domovského adresáře nového uživatele. Výchozí nastavení jsou uložena v /etc/default/useradd . Následující volby používané s –D mění výchozí hodnoty příkazu useradd:
- -b default_home :Počáteční předpona cesty pro domovský adresář nového uživatele
- -e default_expire_date :Datum, kdy je uživatelský účet deaktivován
- -f default_inactive :Počet dní po vypršení platnosti hesla před uzamčením účtu
- -g default_group :Název skupiny nebo ID pro počáteční skupinu nového uživatele
- -s default_shell :Přihlašovací prostředí nového uživatele
Chcete-li například změnit přihlašovací shell nového uživatele na Bourne shell, zadejte následující:
# useradd –D –s /bin/sh user_name
možnosti useradd
Příkaz useradd má k dispozici několik možností, jak přepsat výchozí nastavení. Níže jsou uvedeny některé z běžněji používaných možností:
- -c komentář :Informace GECOS nového uživatele, jako je celé jméno
- -d home_dir :Počáteční předpona cesty pro domovský adresář nového uživatele
- -e expire_date :Datum (ve formátu RRRR-MM-DD), kdy je uživatelský účet deaktivován
- -g initial_group :Název skupiny nebo číslo skupiny počátečního přihlášení uživatele. Název skupiny musí existovat. Číslo skupiny musí odkazovat na již existující skupinu.
- skupina-G :Seznam sekundárních skupin, kterých je uživatel také členem. Každá skupina je od další oddělena čárkou, bez mezer.
- -p passwd :Nastavte heslo nového uživatele.
- -s shell :Název přihlašovacího prostředí uživatele
Chcete-li například vytvořit nové uživatelské jméno „john“ a zahrnout jméno uživatele a změnit přihlašovací shell na shell C, zadejte následující:
# useradd –c "John Smith" –s /bin/csh john
nologin Shell
Když přidáte nový uživatelský účet, je uživateli standardně udělen přístup k prostředí. Můžete si vytvořit uživatelský účet s nologin shell pro účely spouštění služby, jako je SMTP, FTP, nebo například spuštění webového serveru. Uživatel bez přihlašovacího shellu se nemůže přihlásit do systému, a proto nemůže interaktivně spouštět žádné příkazy v systému. Procesy však mohou běžet jako tento uživatel.
Přihlášení jako uživatel s nologin shell je zdvořile odmítnuto a zobrazí se zpráva, že účet není dostupný. Pokud je soubor /etc/nologin.txt existuje, nologin zobrazí obsah souboru spíše než výchozí zprávu. Chcete-li vytvořit uživatele nologin, nejprve se ujistěte, že nologin existuje v /etc/shells soubor:
# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/dash
Chcete-li přidat nového uživatele s názvem test bez přístupu k shellu:
# useradd -s /sbin/nologin test
Při pokusu o přihlášení se zobrazí uživatelský test:
# su – test This account is currently not available.
Úprava nebo mazání uživatelských účtů
usermod
Pro úpravu existujícího uživatelského účtu použijte příkaz usermod. Syntaxe je:
# usermod [options] user_name
Jedním z nejběžnějších použití příkazu usermod je přidání uživatele do jiné (sekundární) skupiny. Použijte –a a –G možnosti následované čárkami odděleným seznamem sekundárních skupin, do kterých chcete uživatele přidat. Následující příklad uvádí obsah /etc/group před a po úpravě uživatele a jeho přidání do sekundární skupiny:
# grep 1017 /etc/group students:x:1017:
# usermod –aG 1017 mary # grep 1017 /etc/group students:x:1017:mary
userdel
K odstranění uživatelského účtu použijte příkaz userdel. Příklad:
# userdel john
Správa skupinového účtu
přidání skupiny
Pomocí příkazu groupadd přidejte účet skupiny. Syntaxe je:
# groupadd [options] group_name
groupmod
K úpravě skupinového účtu použijte příkaz groupmod. Syntaxe je:
# groupmod [options] group_name
groupdel
Pomocí příkazu groupdel odstraňte účet skupiny. Syntaxe je:
# groupdel group_name
Skupiny můžete odstranit, i když jsou ve skupině členové. Primární skupinu žádného existujícího uživatele nelze odebrat. Před odebráním skupiny musíte uživatele odebrat.
gpasswd
Ke správě /etc/group a /etc/gshadow použijte příkaz gpasswd. Každá skupina může mít administrátory, členy a heslo. Syntaxe je:
# gpasswd [options] group_name
skupiny
Příkaz groups zobrazí skupiny, do kterých uživatel patří. Následující příklad ukazuje, že uživatel oracle patří do dvou skupin, oracle (primární skupina) a studenti (sekundární skupina):
$ grep oracle /etc/passwd oracle:x:1000:1000:Oracle Student:/home/oracle/bin/bash
$ grep oracle /etc/group oracle:x:1000: students:x:1056:student1,student2,oracle
Příkaz groups (přihlášený jako oracle) ověřuje tato členství ve skupinách.
$ whoami oracle $ groups oracle students
newgrp
Příkaz newgrp spustí nový shell a změní identifikaci skutečné skupiny uživatele. Následující příklad ilustruje ID skupiny před a po spuštění příkazu. Také to ukazuje, že je spuštěn nový shell.
$ id uid=1000(oracle) gid=1000(oracle) groups=1000(oracle),1066(students)...
Všimněte si, že gid se rovná 1000 (oracle).
$ ps PID TTY TIME CMD 20279 pts/0 00:00:00 bash 20411 pts/0 00:00:00 ps
$ newgrp students
$ id uid=1000(oracle) gid=1066(students) groups=1000(oracle),1066(students)...
Všimněte si, že gid se nyní rovná 1066 (studenti). Všimněte si také, že byl spuštěn nový shell:
$ ps PID TTY TIME CMD 20279 pts/0 00:00:00 bash 20464 pts/0 00:00:00 bash 20486 pts/0 00:00:00 ps
Příkaz newgrp nerozpoznává čísla ID skupiny a můžete změnit pouze své skutečné jméno skupiny na skupinu, které jste členem. Spuštění příkazu bez argumentu nastaví identifikaci skutečné skupiny na primární skupinu uživatele.
Konfigurace hesla
Stárnutí hesel vyžaduje, aby uživatelé své heslo pravidelně měnili. Ke konfiguraci vypršení platnosti hesla použijte příkaz change. Syntaxe je:
# chage [options] user_name
Zadejte příkaz chage následovaný uživatelským jménem pro zobrazení stávajících hodnot stárnutí hesla a proveďte úpravy. Chcete-li například zobrazit a změnit hodnoty pro uživatele john, zadejte (jako uživatel root):
# chage john Changing the aging information for john Enter the new value, or press ENTER for the default Minimum Password Age [0]: Maximum Password Age [99999]: Last Password Change (YYYY-MM-DD) [2018-03-24]: Password Expiration Warning [7]: Password Inactive [-1]: Account Expiration Date (YYYY-MM-DD) [-1]:
Informace o stárnutí hesel jsou uloženy v souboru /etc/shadow. Chcete-li zobrazit záznam uživatele Jana před provedením jakýchkoli změn:
# grep john /etc/shadow john:$6$fJB4dWkt$...:17614:0:99999:7:::
Změna hodnoty minimálního stáří hesla na 14 a maximální hodnoty stáří hesla na 30 znamená, že za 14 dní má uživatel 30 dní na změnu hesla. Nová položka se zobrazí jako:
# grep john /etc/shadow john:$6$fJB4dWkt$...:17614:14:30:7:::
Na základě těchto informací je uživatel upozorněn, aby si změnil heslo sedm dní před datem vypršení platnosti hesla. Direktiva INACTIVE se používá k nastavení počtu dní nečinnosti po vypršení platnosti hesla před uzamčením uživatelského účtu. Nastavení INACTIVE na -1 tuto funkci deaktivuje.
Možnosti změny
Pro příkaz chage je k dispozici řada možností. Seznam informací o stárnutí:
# chage -l john Last password change : Mar 24, 2018 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7
Chcete-li přinutit uživatele k okamžitému nastavení nového hesla (vynutit okamžité vypršení platnosti), nastavte hodnotu poslední změny hesla na 0. Příklad:
# chage –d 0 john
Po přihlášení je uživatel vyzván ke změně hesla.
authconfig
Algoritmus hašování hesla uživatele systému Linux je také konfigurovatelný. Pomocí příkazu authconfig určíte aktuálně používaný algoritmus nebo jej nastavíte na něco jiného. Chcete-li určit aktuální algoritmus:
# authconfig --test | grep hashing password hashing algorithm is sha512
Chcete-li změnit algoritmus, použijte –passalgo možnost s jedním z následujících parametrů jako:dešifrovat , bigcrypt , md5 , sha256 nebo sha512 a poté –aktualizace volba. Chcete-li například změnit algoritmus na MD5:
# authconfig --passalgo=md5 --updateCentOS / RHEL :Správa stárnutí hesel pro uživatele pomocí chage (s praktickými příklady)
Porozumění souboru /etc/login.defs