useradd command je nízkoúrovňový nástroj, který se používá pro přidávání/vytváření uživatelských účtů v Linuxu a další Unixové operační systémy.
Linux je systém pro více uživatelů, což znamená, že se stejným systémem může pracovat více osob současně. Tito uživatelé musí být vytvořeni před použitím systému.
Po vyvolání useradd
vytvoří nový uživatelský účet podle možností zadaných na příkazovém řádku a výchozích hodnot nastavených v /etc/default/useradd
soubor. useradd
také čte obsah /etc/login.defs
soubor. Tento soubor obsahuje konfiguraci pro sadu stínových hesel, jako je politika vypršení platnosti hesla, rozsahy uživatelských ID používaných při vytváření systémových a běžných uživatelů a další.
Pouze root nebo uživatelé s právy sudo mohou použít příkaz useradd k vytvoření nového uživatelského účtu. Po vyvolání vytvoří useradd nový uživatelský účet podle možností zadaných na příkazovém řádku a výchozích hodnot nastavených v /etc/default/useradd
soubor.
- Upravuje /etc/passwd , /etc/shadow , /etc/group a /etc/gshadow soubory pro nově vytvořené uživatelské účty.
- Vytvoří a naplní domovský adresář pro nového uživatele.
- Nastaví oprávnění a vlastnictví domovského adresáře.
Obsah
- Vytvořit nového uživatele
- Přidat nového uživatele a vytvořit domovský adresář
- Vytvořte uživatele s jiným domovským adresářem
- Uživatel s konkrétním ID uživatele
- Uživatel s konkrétním ID uživatele
- Přidat uživatele do více skupin
- Uživatel bez domovského adresáře
- Uživatel s datem vypršení platnosti účtu
- Uživatel s datem vypršení platnosti hesla
- Přidávání vlastních komentářů uživateli
- Určení prostředí pro přihlášení uživatele
- Vytvoření systémového uživatele
- Řetězení argumentů
- Změna výchozích hodnot useradd
- Odstranění uživatele z Linuxu
- Přidání skupiny v systému Linux
- Změnit skupinu uživatele
1. Vytvořit nového uživatele
Základní syntaxe useradd příkaz je:
# sudo useradd [options] username
Příklad:
sudo useradd citizix
Když přidáme nového uživatele v Linuxu pomocí useradd příkaz se vytvoří v uzamčeném stavu a k odemknutí tohoto uživatelského účtu musíme pro tento účet nastavit heslo pomocí passwd příkaz.
$ sudo passwd citizix
Changing password for user citizix.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Záznam se automaticky přidá do /etc/passwd soubor:
$ cat /etc/passwd | grep citizix
citizix:x:1001:1001::/home/citizix:/bin/bash
Pole v /etc/passwd
jsou odděleny dvojtečkou :
a představují následující:
- Uživatelské jméno :Přihlašovací jméno uživatele používané pro přihlášení do systému. Mělo by mít 1 až 32 znaků.
- Heslo :Heslo uživatele (nebo znak x) uložené v /etc/shadow soubor v zašifrovaném formátu.
- ID uživatele (UID) :Každý uživatel musí mít ID uživatele (UID ) Identifikační číslo uživatele. Ve výchozím nastavení UID 0 je vyhrazeno pro uživatele root a UID v rozsahu 1–99 jsou vyhrazeny pro jiné předdefinované účty. Další UID v rozmezí 100–999 jsou vyhrazeny pro systémové účty a skupiny.
- ID skupiny (GID) :Primární ID skupiny (GID ) Identifikační číslo skupiny uložené v /etc/group soubor.
- Informace o uživateli :Toto pole je volitelné a umožňuje vám definovat další informace o uživateli. Například celé jméno uživatele. Toto pole je vyplněno příkazem ‚finger‘.
- Domovský adresář :Absolutní umístění domovského adresáře uživatele.
- Skořápka :Absolutní umístění uživatelského prostředí, tj. /bin/bash .
2. Přidejte nového uživatele a vytvořte domovský adresář
Použijte -m
(--create-home
) možnost vytvořit domovský adresář uživatele jako /home/username
:
sudo useradd -m username
Výše uvedený příkaz vytvoří domovský adresář nového uživatele a zkopíruje soubory z /etc/skel
adresáře do domovského adresáře uživatele.
3. Vytvořte uživatele s jiným domovským adresářem
Ve výchozím nastavení useradd vytvoří domovský adresář se stejným názvem jako uživatelské jméno. Chcete-li vytvořit jiný domovský adresář, použijte -d
argument s cestou k tomuto adresáři.
Tento příkaz vytvoří domovský adresář /opt/citizixone
pro uživatele citizixone.
sudo useradd -d /opt/citizixone citizixone
Zkontrolujte /etc/passwd
$ cat /etc/passwd | grep citizixone
citizixone:x:1002:1002::/opt/citizixone:/bin/bash
4. Uživatel s konkrétním ID uživatele
Pokud potřebujete zadat ID uživatele pro vytvářeného uživatele, použijte argument -u
(--uid
) takto:
sudo useradd -u 1009 citizix
5. ID konkrétní skupiny
Chcete-li zadat ID skupiny, použijte -g
(--gid
) jako v tomto příkladu:
sudo useradd -g citizix citizixtwo
Ověřte GID uživatele pomocí tohoto příkazu:
$ sudo id citizixtwo
uid=1003(citizixtwo) gid=1001(citizix) groups=1001(citizix)
$ cat /etc/passwd | grep citizixtwo
citizixtwo:x:1003:1001::/home/citizixtwo:/bin/bash
6. Přidat uživatele do více skupin
Pokud chcete přidat uživatele do více skupin, použijte -G
(--groups
) jako v tomto příkladu:
Připojte uživatele citizix
do skupin admins
, webadmin
, developers
:
sudo usermod -a -G admins,webadmin,developers citizix
Vytvořte uživatele citizixtwo
přidání do skupin admins
, webadmin
, developers
:
sudo useradd -G admins,webadmin,developers citizix
Pomocí těchto příkazů ověřte, že uživatelé byli úspěšně přidáni do skupin:
sudo id citizix
sudo id citizixtwo
7. Uživatel bez domovského adresáře
Pokud chcete vytvořit uživatele bez domovského adresáře, použijte -M
možnost:
sudo useradd -M citizix
8. Uživatel s datem vypršení platnosti účtu
Někdy chcete vytvořit uživatele s datem vypršení platnosti. Tento příkaz použijte k vytvoření uživatele citizixfour
jehož platnost vyprší 2021-12-30
:
sudo useradd -e 2021-12-30 citizixfour
Pro ověření stáří účtu a hesla použijte chage
příkaz:
$ sudo chage -l citizixfour
Last password change : Oct 08, 2021
Password expires : never
Password inactive : never
Account expires : Dec 30, 2021
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
9. Uživatel s datem vypršení platnosti hesla
-f
argument se používá k definování počtu dní, po které je uživatel deaktivován po vypršení platnosti hesla. Hodnota 0
deaktivovat uživatelský účet, jakmile vyprší platnost hesla. Ve výchozím nastavení je hodnota vypršení platnosti hesla nastavena na -1
znamená, že nikdy nevyprší.
Zde v tomto příkladu nastavíme datum vypršení platnosti hesla účtu na 45 days
na uživateli citizixfive
pomocí -e
a -f
možnosti.
sudo useradd -e 2021-12-30 -f 45 citizixfive
sudo chage -l citizixfive
10. Přidání vlastních komentářů uživateli
-c
(--comment
) přidá krátký popis pro nového uživatele. Obvykle se jako komentář přidá celé jméno uživatele nebo kontaktní informace.
sudo useradd -c "Citizix User" citizixsix
Zkontrolujte /etc/passwd
$ cat /etc/passwd | grep citizixsix
citizixsix:x:1006:1006:Citizix User:/home/citizixsix:/bin/bash
11. Určení prostředí pro přihlášení uživatele
-s
(--shell
) se používá k zadání přihlašovacího shellu. Buď můžeme použít jeden z nainstalovaných shellů jako /bin/bash
nebo bin/zsh
nebo pro uživatele, kteří nemají nic společného s přihlašovacím shellem, můžeme udělat /sbin/nologin
k určení, že neexistuje žádný přihlašovací shell:
# Specify /bin/zsh
sudo useradd -s /bin/zsh citizix
# Specify no login
sudo useradd -s /sbin/nologin citizix
12. Vytvoření systémového uživatele
Někdy potřebujeme systémové uživatele, které bude používat buď systém, nebo aplikace, které nainstalujeme do systému.
Použijte -r
(--system
) argument pro definování systémového uživatele:
sudo useradd -r grafana
13. Řetězení argumentů
Argumenty můžeme také řetězit při vytváření uživatele.
Podívejte se na tento příklad vytváření uživatele při vytváření zadaného domovského adresáře /var/www/citizix
a definování vlastního přihlašovacího shellu /bin/zsh
a přidání komentáře Citizix Web User
:
sudo useradd -m -d /var/www/citizix -s /bin/zsh -c "Citizix Web User" -U citizix
14. Změna výchozích hodnot useradd
useradd
výchozí hodnoty jsou uloženy v souboru /etc/default/useradd
.
Pokladna obsahu /etc/default/useradd
:
$ cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
Můžete je také dotazovat pomocí argumentu -D
pro useradd
příkaz:
$ sudo useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
Chcete-li tyto hodnoty aktualizovat nebo změnit, upravte soubor nebo použijte useradd -D
předávání hodnot.
Příklad změny přihlašovacího shellu z /bin/bash
do /bin/zsh
sudo useradd -D -s /bin/zsh
Ověřte, že byl aktualizován:
$ sudo useradd -D | grep -i shell
SHELL=/bin/zsh
15. Odstranění uživatele z Linuxu
Chcete-li odstranit uživatele, použijte userdel
příkaz:
sudo userdel citizixfive
16. Přidání skupiny v Linuxu
Chcete-li ručně vytvořit skupinu, použijte příkaz.
Tím se vytvoří skupina sftp-users
v našem systému:
sudo groupadd sftp-users
Potvrďte, že skupina byla vytvořena
$ sudo grep sftp-users /etc/group
sftp-users:x:1007:
Použijte příkaz -G
pro ostatní skupiny (-G
přidá uživatele do nové skupiny, ale také jej ponechá ve staré (append).
Použijte id
příkaz k potvrzení
sudo id citizix
17. Změnit skupinu uživatele
Chcete-li vytvořit uživatele a změnit jeho primární skupinu na uvedenou, použijte -g
možnost:
sudo useradd -g citizix citizixseven
Závěr
Prozkoumali jsme, jak provádět základní operace s useradd
příkazy. Podařilo se nám vytvořit uživatele, přidat je do skupin a upravit je nebo smazat.
Chcete-li se dozvědět více o příkazu useradd, můžete použít manuálové stránky:
man useradd
Chcete-li zkontrolovat všechny možnosti pro useradd, zadejte příkaz do terminálu bez možnosti:
$ useradd
Usage: useradd [options] LOGIN
useradd -D
useradd -D [options]
Options:
-b, --base-dir BASE_DIR base directory for the home directory of the
new account
-c, --comment COMMENT GECOS field of the new account
-d, --home-dir HOME_DIR home directory of the new account
-D, --defaults print or change default useradd configuration
-e, --expiredate EXPIRE_DATE expiration date of the new account
-f, --inactive INACTIVE password inactivity period of the new account
-g, --gid GROUP name or ID of the primary group of the new
account
-G, --groups GROUPS list of supplementary groups of the new
account
-h, --help display this help message and exit
-k, --skel SKEL_DIR use this alternative skeleton directory
-K, --key KEY=VALUE override /etc/login.defs defaults
-l, --no-log-init do not add the user to the lastlog and
faillog databases
-m, --create-home create the user's home directory
-M, --no-create-home do not create the user's home directory
-N, --no-user-group do not create a group with the same name as
the user
-o, --non-unique allow to create users with duplicate
(non-unique) UID
-p, --password PASSWORD encrypted password of the new account
-r, --system create a system account
-R, --root CHROOT_DIR directory to chroot into
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-s, --shell SHELL login shell of the new account
-u, --uid UID user ID of the new account
-U, --user-group create a group with the same name as the user
-Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mapping