Jak přidat, upravit a odebrat uživatele v Linuxu?

Správa uživatelů v jakémkoli operačním systému je jedním ze základních rutinních úkolů správce systému.

U operačního systému založeného na Linuxu to obvykle zahrnuje vytváření uživatelských účtů, úpravu stávajících účtů, jako je změna jejich domovského adresáře, výchozího prostředí, zamykání/odemykání jednoho nebo více účtů a odstranění uživatelských účtů.

Než prozkoumáme příkazy a procesy k provádění těchto úkolů, pojďme se krátce ponořit do toho, jak lze uživatelské účty klasifikovat v Linuxu. Všimněte si také, že pokud to není výslovně uvedeno, dané příkazy budou fungovat ve většině běžných distribucí Linuxu.

Typy uživatelů

Kořenový uživatel

Uživatel root je správcem operačního systému se všemi oprávněními k provádění operací. Obvykle pouze root může instalovat/odinstalovat nebo aktualizovat základní systémové programy a knihovny. Je to jediný uživatelský účet s oprávněními pro celý systém.

Takže uživatel root je nejvýkonnějším uživatelem systému.

Zvláštní uživatel

Toto jsou uživatelé bez přihlášení. Nemají všechna oprávnění uživatele root. V závislosti na účtu přebírají různé specializované role.

Ty se vytvářejí automaticky při instalaci jakékoli aplikace. bin, sync, lp, mail, operator, squid jsou některé z příkladů speciálních uživatelů.

Běžní uživatelé

Běžní uživatelé mají plná oprávnění pouze ve svém pracovním adresáři, obvykle ve svém domovském adresáři. Nemají oprávnění spravovat systém nebo instalovat software. Nemohou tyto úkoly provádět bez speciálních oprávnění přes sudo.

Přidání uživatele

Debian/Ubuntu

V systémech založených na Debianu nebo Ubuntu existuje několik možností, jak přidat uživatele z CLI. První příkaz je adduser, což je skript v Perlu a používá příkaz useradd v backendu, jehož použití uvidíme později.

Vzhledem k tomu, že přidání uživatele je privilegovaný úkol, budete muset použít sudo jako předponu a uživatelské jméno jako argument. Další podrobnosti lze zadat podle výzvy. Kromě uživatelského jména a hesla jsou ostatní údaje volitelné. Můžeme ověřit, že uživatel byl vytvořen pomocí příkazu id.

$ sudo adduser johndoe
Adding user `johndoe' ...
Adding new group `johndoe' (1003) ...
Adding new user `johndoe' (1003) with group `johndoe' ...
Creating home directory `/home/johndoe' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for johndoe
Enter the new value, or press ENTER for the default
        Full Name []: John Doe
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y
$
$ id johndoe
uid=1003(johndoe) gid=1003(johndoe) groups=1003(johndoe)
$

CentOS/RHEL/Fedora (včetně Debian/Ubuntu)

Další příkaz useradd bude fungovat napříč distribucemi OS založených na RHEL a stejně dobře funguje na hostitelích Ubuntu/Debian. Nejjednodušší syntaxe (bez dalších možností) pro vytvoření nového uživatele je:

$ sudo useradd <username>

Příklad:

$ sudo useradd janedoe

Příkaz useradd podporuje více možností, které lze zadat při vytváření uživatele, nejběžnější jsou ID uživatele (UID), ID skupiny (GID), výchozí prostředí shellu a domovský adresář atd. Jeden takový příklad je uveden níže:

$ sudo useradd -s /bin/sh -d /data/newhome -c "Jane Doe" -u 1005 janedoe

Nově vytvořeného uživatele můžete ověřit pomocí příkazu id:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$

Úprava uživatele

Často je potřeba upravit některé vlastnosti stávajících uživatelů na základě požadavků organizace, požadavků uživatelů nebo migrací systému. Většinu těchto vlastností lze snadno upravit, i když musíme zajistit, jak to ovlivní uživatelské prostředí a přístup k souborům, které uživatel vlastní nebo ke kterým má přístup.

  O 40 let později nás 'Pac-Man' stále chytá za srdce

Výchozí Shell

Výchozí shell je shell CLI vytvořený, když uživatel spustí novou relaci CLI buď lokálně, nebo přes SSH. Většina moderních systémů má výchozího uživatele Bash, i když se může lišit v závislosti na distribuci Linuxu nebo prostředí uživatele. Chcete-li upravit výchozí shell uživatele, použijte:

$ sudo usermod -s <shell> <username>

Příklad:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/sh
$ sudo usermod -s /bin/bash janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/bash
$

Jak můžete vidět ve výše uvedeném výstupu, shell byl změněn z /bin/sh na /bin/bash pro uživatele janedoe.

Domovský adresář

Stejně jako výchozí prostředí lze domovský adresář uživatele upravit do jiného umístění pomocí:

$ sudo usermod -d <new_directory_path> <username>

V níže uvedeném příkladu byl domovský adresář uživatele uživatele janedoe změněn na /data/janedoe:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/bash
$ sudo usermod -d /data/janedoe janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$

Před provedením přepnutí se ujistěte, že nový adresář má správné vlastnictví a oprávnění. V opačném případě může uživatel čelit problémům při přihlašování nebo práci v novém domovském adresáři.

  Jak vytvořit a spravovat obsah v aplikaci Microsoft Word

uživatelské ID

Uživatelské ID stávajícího uživatele můžete změnit pomocí:

$ sudo usermod -u <new_uid> <username>

Příklad:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$ sudo usermod -u 1010 janedoe
$ getent passwd janedoe
janedoe:x:1010:1005::/data/janedoe:/bin/bash
$

Opět platí, že změna UID mění způsob, jakým souborový systém Linux mapuje vlastnictví a oprávnění k souboru nebo adresáři. Ujistěte se, že domovský adresář uživatele a jeho obsah a všechny ostatní soubory kdekoli v systému, původně vlastněné uživatelem (se starým UID), byly změněny na mapované UID. Pokud tak neučiníte, může to způsobit problémy v relaci CLI a v přístupu uživatele k souboru.

Výchozí skupina

Výchozí skupina je obvykle výchozí ID skupiny uživatele, které se vytvoří během vytváření uživatele, pokud není určeno jiné GID. Linux umožňuje upravit výchozí skupinu uživatelů také pomocí příkazu usermod. Zde je syntaxe k použití:

$ sudo usermod -g <new_gid or group_name> <username>

Zde je jeden příklad:

$ getent passwd janedoe
janedoe:x:1010:1005::/data/janedoe:/bin/bash
$ sudo usermod -g 1001 janedoe
$ getent passwd janedoe
janedoe:x:1010:1001::/data/janedoe:/bin/bash
$

Znovu se ujistěte, že je nové ID skupiny nastaveno v domovském adresáři uživatele, jeho obsahu a všech ostatních souborech nebo adresářích použitelných pro správnou migraci jejich oprávnění k vlastnictví.

Přidávání/odebírání skupin

Kromě výchozí skupiny může být uživatel v Linuxu součástí sekundárních skupin. Vždy můžeme přidat nebo odebrat další skupiny, do kterých uživatel patří, pomocí příkazu usermod.

$ sudo usermod -a -G <group_id or group_name> <username>

Příklad:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo usermod -a -G docker janedoe
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker)
$

Podobně, chcete-li odebrat uživatele z jedné ze sekundárních skupin, použijte příkaz gpasswd, jak je uvedeno níže:

$ sudo gpasswd -d <username> <groupname>

Příklad:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker)
$ sudo gpasswd -d janedoe docker
Removing user janedoe from group docker
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$

Komentář GECOS

Pole GECOS v /etc/passwd obsahuje informace o uživateli nebo komentář. Tyto informace můžeme upravit pro stávajícího uživatele jako:

$ sudo usermod -c <comment> <username>

Příklad:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$ sudo usermod -c "Jane Doe - System Admin" janedoe
$ getent passwd janedoe
janedoe:x:1005:1005:Jane Doe - System Admin:/data/janedoe:/bin/bash
$

Vezměte prosím na vědomí, že pokud váš komentář nebo podrobnosti o uživateli obsahují mezery, uzavřete toto pole do uvozovek jako ve výše uvedeném příkladu.

  Jak se předběžně zaregistrovat pro Tekken Mobile

Přihlašovací jméno

Přihlašovací jméno uživatele lze také změnit pomocí příkazu usermod pomocí parametru -l:

$ sudo usermod -l <new_username> <old_username>

Příklad:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo usermod -l jane_doe janedoe
$ id jane_doe
uid=1005(jane_doe) gid=1005(janedoe) groups=1005(janedoe)
$

Nezapomeňte aktualizovat uživatelské reference podle nového názvu bez ohledu na to, kde se používají. I v příkazech jako id by mělo být zadáno nové uživatelské jméno.

Odebírání uživatele

Uživatele lze z Linuxu odebrat pomocí příkazu userdel.

$ sudo userdel <username>

Příklad:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo userdel janedoe
$ id janedoe
id: ‘janedoe’: no such user
$

Chcete-li odebrat uživatele spolu s jeho domovským adresářem a zařazováním pošty, přidejte také příznak -r.

$ sudo userdel -r <username>

Konkrétně pro systémy založené na Ubuntu můžete také uživatelem příkaz deluser odebrat uživatele:

$ sudo deluser <username>

Podobně, chcete-li odebrat také domovský adresář a zařazování pošty, použijte:

$ sudo deluser --remove-home <username>

Podrobné informace a další podporované možnosti najdete na hlavní stránce různých příkazů pomocí:

$ man adduser
$ man useradd
$ man usermod
$ man deluser
$ man userdel

Závěr

Tento článek ukázal různé aspekty správy uživatelů v systému Linux. To zahrnuje vysvětlení různých kategorií uživatelů a jak je přidávat a odebírat. Zahrnuje také různé možnosti, které pomáhají upravit parametry stávajícího uživatele. Přestože nepokrývá všechny možnosti podporované různými příkazy, pokrývá mnoho běžných administrativních úkolů, se kterými se správce systému setká při každodenní práci.

Také by vás mohlo zajímat: Jak odstranit soubory a adresáře v Linuxu?