GNU/Linux >> Znalost Linux >  >> Linux

Průvodce pro začátečníky ke správě uživatelů a skupin v Linuxu

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 --update
CentOS / RHEL :Správa stárnutí hesel pro uživatele pomocí chage (s praktickými příklady)
Porozumění souboru /etc/login.defs


Linux
  1. 10 návodů na příkazy Linuxu pro začátečníky a experty

  2. Spravujte skupiny uživatelů Linuxu

  3. 5 kroků k nastavení uživatelské a skupinové diskové kvóty v systému UNIX / Linux

  1. Jak přidat uživatele do skupiny v Linuxu

  2. Jak vytvořit a odstranit uživatelskou skupinu v Linuxu

  3. Jak (správně) změnit UID a GID uživatele/skupiny v Linuxu

  1. Průvodce linuxovým terminálem pro začátečníky

  2. Jak přidat uživatele do skupiny v Linuxu

  3. Jak spravovat oprávnění/vlastnictví souborů a adresářů v Linuxu