V Linuxu a operačních systémech podobných Unixu je nejběžnějším příkazem pro vytváření uživatelů 'useradd' nebo 'adduser'. Jako správce systému často vyžaduje přidávat uživatele, odebírat uživatele, vytvářet skupiny a přiřazovat uživatele.
Z hlediska funkcí není mezi výše uvedenými dvěma příkazy žádný rozdíl. Příkaz adduser je přátelštější a někteří správci Debian/Ubuntu jej rádi používají. Useradd je binárně zkompilován se systémem Linux a funguje jako backend pro adduser.
V tomto tutoriálu se naučíme, jak vytvořit uživatele v Linuxu z terminálu pomocí příkazu useradd.
Příkaz a syntaxe Useradd
Následující řádek ukazuje syntaxi příkazu useradd:
useradd [OPTIONS] username
Uživatele lze přidat jednoduše zadáním uživatelského jména následovaného příkazem. Měli byste spustit useradd
buď s uživatelským oprávněním root nebo sudo.
Pojďme se dozvědět více o useradd
příkaz a jeho možnosti.
1) Jak vytvořit nového uživatele v Linuxu
Jak bylo uvedeno výše, k vytvoření nového uživatele použijeme příkaz useradd.
Následující příkaz vytvoří nového uživatele s názvem 'bill' a druhý příkaz nastaví uživateli ('bill') nové heslo.
$ sudo useradd bill
$ sudo passwd bill
Tím se vytvoří uživatel s domovským adresářem jako /home/bill
a zkopíruje soubory z adresáře '/etc/skel' do domovského adresáře uživatele.
$ ls -al /home/bill/
total 20
drwx------. 2 bill bill 4096 Mar 9 06:49 .
drwxr-xr-x. 4 root root 4096 Mar 9 06:49 ..
-rw-r--r--. 1 bill bill 18 Nov 8 16:21 .bash_logout
-rw-r--r--. 1 bill bill 141 Nov 8 16:21 .bash_profile
-rw-r--r--. 1 bill bill 312 Nov 8 16:21 .bashrc
Tento příkaz přidá položku do souborů /etc/passwd, /etc/shadow, /etc/group a /etc/gshadow.
Poznámka:V distribuci související s Ubuntu a Debianem useradd nevytvoří výchozí domovský adresář, pokud jej nebudete muset zadat pomocí voleb. Místo toho Debian doporučuje použít příkaz adduser.
2) Vytvořte uživatele s konkrétním domovským adresářem
Chcete-li vytvořit uživatele se specifickým domovským adresářem jako hodnotou pro přihlášení uživatele, použijte -d
volba. Před spuštěním příkazu se ujistěte, že jste vytvořili základní domovský adresář pomocí příkazu mkdir.
Vytvořme základní domovský adresář s názvem 'devops':
$ sudo mkdir /devops
Nyní následující příkaz vytvoří uživatele 'bill' a nastaví jeho domovský adresář jako '/devops/billhome'.
$ sudo useradd -d /devops/billhome bill
Output
$ sudo useradd -d /devops/billhome bill
$ ls -al /devops/billhome
total 12
drwxr-xr-x 2 bill bill 100 Dec 31 05:13 .
drwxr-xr-x 17 root root 3680 Dec 31 05:13 ..
-rw-r--r-- 1 bill bill 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 bill bill 3771 Apr 4 2018 .bashrc
-rw-r--r-- 1 bill bill 807 Apr 4 2018 .profile
K vytvoření uživatele můžete použít kombinaci obou -m (vytvoření domovského adresáře, pokud neexistuje) a -d (nastavení dané cesty jako přihlašovacího adresáře uživatele).
$ sudo useradd -m -d /home/bobhome bob
3) Vytvoření uživatele s konkrétním ID uživatele
Ve výchozím nastavení při vytváření uživatele přiřadí další dostupné UID definované v souboru login.defs. Ale pomocí -u
můžete vytvořit uživatele s konkrétním UID.
V následujícím příkladu je uživatelský účet vytvořen se specifickým UID (3210).
$ useradd -u 3210 bill
$ grep bill /etc/passwd bill:x:3210:3210::/home/bill:/bin/bash
UID lze vidět v souboru '/etc/passwd', jak je ukázáno ve výše uvedeném výstupu.
4) Vytvořit uživatele se specifickým přihlašovacím prostředím
Někdy potřebujeme vytvořit uživatele se specifickým přihlašovacím shellem (jako ksh, tcsh, zsh atd.) nebo bez přihlášení do shellu ('/sbin/nologin').
Přihlašovací shell spojený s uživatelským účtem můžeme zadat pomocí -s
možnost, jak je uvedeno níže:
$ useradd -s /bin/tcsh bill
Přihlašovací shell můžete ověřit grepováním uživatelského jména ze souboru /etc/passwd:
$ grep bill /etc/passwd bill:x:504:505::/home/bill:/bin/tcsh
5) Vytvořte konkrétní základní domovský adresář
Ve výchozím nastavení jsou domovské adresáře uživatelů umístěny v adresáři '/home' (proměnná v /etc/default/useradd ). Pomocí -b
můžete mít pro nového uživatele jiný základní domovský adresář.
Následující příkaz nastaví adresář '/mnt' jako základní adresář a vytvoří domovský adresář uživatele 'bill' jako '/mnt/bill'.
$ useradd -b /mnt bill
$ grep bill /etc/passwd bill:x:504:505::/mnt/bill:/bin/bash
6) Vytvořte uživatele s datem vypršení platnosti
Při vytváření nového uživatele můžete nastavit datum vypršení platnosti uživatelského účtu pomocí -e
možnost.
Následující příklad nastavuje datum vypršení platnosti (formát data je RRRR-MM-DD ) pro uživatele 'účet'.
$ sudo useradd -e 2013-06-23 bill
To lze ověřit kontrolou v posledním poli souboru '/etc/shadow'. Poslední pole (15879) zobrazuje datum vypršení platnosti ve smyslu počtu dní od 1. ledna 1970, kdy byl účet deaktivován.
$ sudo grep bill /etc/shadow bill:!!:15813:0:99999:7::15879:
Jednodušší způsob, jak ověřit datum vypršení platnosti uživatele, je pomocí příkazu chage, jak je uvedeno níže:
$ sudo chage -l bill
Last password change : Feb 10, 2013
Password expires : never
Password inactive : never
Account expires : Jun 23, 2013
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
-f
Tato volba poskytuje počet dní po vypršení platnosti hesla, než bude účet trvale deaktivován. Hodnota 0
deaktivuje účet, jakmile vyprší platnost hesla.
$ sudo useradd -f 20 bill
Jak je znázorněno ve stínovém souboru, počet dní je nastaven na 20 (v předposledním sloupci).
$ sudo grep bill /etc/shadow bill:!!:15813:0:99999:7:20::
7) Vytvoření uživatele a přidání do více skupin
Každý uživatel v Linuxu by měl zůstat v jedné primární skupině a žádné nebo více sekundárních skupinách (doplňková skupina).
Primární skupinu uživatele, do které patří, lze nastavit pomocí volby -g. Skupina s touto možností již musí existovat.
$ sudo useradd -g xero bill
$ sudo id bill uid=504(bill) gid=505(xero) groups=505(xero) context=root:system_r:unconfined_t:SystemLow-SystemHigh
Skupinu lze zkontrolovat pomocí příkazu id. -G
možnost se používá k přidání uživatele do dalších skupin.
$ sudo useradd -G g1,g2,g3 bill
$ sudo id bill uid=504(bill) gid=509(bill) groups=509(bill),506(g1),507(g2),508(g3) context=root:system_r:unconfined_t:SystemLow-SystemHigh
Podívejme se, jak vytvořit uživatele a přiřadit jej do více skupin. Příkaz vytvoří nového uživatele s názvem 'bill' s primární skupinou 'týmy' a sekundárními skupinami 'admin' a 'apache'.
$ sudo useradd -g teams -G admin,apache bill
8) Vytvořte duplicitní ID uživatele
-o
možnost umožňuje vytvořit uživatelský účet s duplicitním uživatelským (nejedinečným) ID. Musíte zadat číslo UID s -u
možnost.
Zkontrolujte následující příklad:
$ sudo useradd -o -u 503 bill
Zde vidíme, že existují dva účty s ID 503.
$ sudo grep 503 /etc/passwd
jenny:x:503:503::/home/jenny:/bin/bash
bill:x:503:505::/home/bill:/bin/bash
9) Vytvořte uživatele jako systémový účet
Normálně jsou UID do 500 nebo 1000 rezervována pro systémové účty a nejsou přidělována běžným uživatelům. Pomocí -r
možnost, je vytvořenému uživateli přidělen účet s ID v rozsahu systémových uživatelů.
$ sudo useradd -r bill
$ sudo grep bill /etc/passwd bill:x:101:102::/home/bill:/bin/bash
Zde není vytvořen domovský adresář pro uživatele. Musí být vytvořen ručně nebo poskytnut s -m
možnost.
10) Vytvořte uživatele bez domovského adresáře
Pokud si nepřejete vytvářet domovský adresář sám, -M
možnost může být poskytnuta.
$ sudo useradd -M bill
$ sudo grep bill /etc/passwd
bill:x:504:505::/home/bill:/bin/bash
$ ls /home/bill
ls: /home/bill: No such file or directory
Ve výstupu příkazu ls je vidět, že domovský adresář pro uživatele účtu neexistuje.
11) Vytvořte uživatele s heslem
Heslo uživatele je ve výchozím nastavení zakázáno. Heslo můžete nastavit ručně pomocí příkazu passwd. Pokud však chcete zadat heslo při vytváření uživatele, můžete použít -p
možnost.
Zde uvedené heslo však musí být zašifrováno, jak vrací crypt(3).
$ sudo useradd -p '$1$ZsQB81$RCCVDuI5VR6q905nUPz4a/' bill
12) Změna výchozích možností
Když je do systému přidán uživatel, některé hodnoty se berou jako výchozí, například shell, základní adresář atd. Základní adresář je adresář, kde jsou umístěny domovské adresáře uživatelů. Na většině systémů Linux jsou domovské adresáře uživatelů umístěny v adresáři /home.
Například domovský adresář uživatele tom bude ve výchozím nastavení '/home/tom'. Takže /home bude jeho základním adresářem. Tyto výchozí možnosti jsou definovány v souboru '/etc/defaults/useradd'. Tyto výchozí hodnoty lze zobrazit pomocí -D
možnost příkazu useradd:
$ sudo useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no
Výše uvedený příkaz mohou spustit i normální uživatelé (ne root uživatelé). -D
Tato možnost se používá nejen k zobrazení výchozích nastavení, ale také ke změně výchozích nastavení.
13) Vytvořte uživatele s vlastním komentářem
Při vytváření uživatele můžeme poskytnout celé jméno nebo krátký popis uživatele (komentář). Musíte použít -c
možnost přidat vlastní komentáře.
Dovolte mi ukázat vám příklad:
$ sudo useradd -c "Bill Drape" bill
Tento komentář lze vidět v záznamu uživatele v souboru '/etc/passwd'.
$ sudo grep bill /etc/passwd bill:x:504:505:Bill Drape:/home/bill:/bin/bash
Závěr
V tomto tutoriálu jsme se naučili vytvářet uživatele v Linuxu a různé možnosti příkazu useradd. Doufám, že se vám čtení líbilo a zanechte prosím své návrhy v sekci komentářů níže.