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.
Table of Contents
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.
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.
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.
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?