Základní typy účtů a jejich účel na Ubuntu Server OS
Správa účtů na Ubuntu Serveru je klíčová v kontextu přiřazování různých oprávnění uživatelům i službám odrážejícím se v bezpečnosti provozu systému.
Na Ubuntu Server OS, stejně jako jiných Linuxových distribucích, můžeme primárně rozlišovat dva základní typy účtů, a to:
-
Uživatelské účty
- slouží pro přihlášení reálných osob k systému. Tyto účty jsou obvykle spojeny s konkrétními lidmi.
- typicky mají svůj vlastní domovský adresář
/home/<userName>
, pro osobní data a aplikace uživatelů. - Uživatelské účty mohou mít přiřazená oprávnění pro přístup k dalším částem systému, včetně administrátorských rolí s možností používat
sudo
příkazy.
-
Systémové účty (účty služeb)
- jsou vytvořeny primárně pro potřeby provozování aplikací nebo služeb na pozadí (například webové servery, databáze).
- typicky mají pro svá data přiřazený adresář
/var/lib/<serviceName>
- obvykle mají omezená oprávnění nutná pouze pro konkrétní úlohy a často jsou nastavena tak, aby nemohla být použita pro interaktivní přihlášení.
Jelikož jde v obou případech technicky o obdobný typ "uživatelského" účtu, i nakládání s oběma typy účtu je podobné - viz. dokumentace níže.
S využitím účtů je možné:
- Zvýšit bezpečnost přiřazením oprávnění, kdo se k serveru může připojovat, k jakaým datům přistupovat, a co na serveru vykonávat. V případě systémových uživatelů jde poté o izolaci běhu služeb od ostatních operací systému.
- Monitorovat aktivitu na serveru v kontextu sledování akcí provedených jednotlivými uživateli.
- Spravovat zdroje. Uživatelské účty umožňují lepší kontrolu nad využíváním systémových zdrojů. Lze například nastavit pro jednotlivé uživatele kvóty na diskový prostor nebo omezení procesorového času.
- Personalizovat prostředí pro zvýšení pohodlí a efektivity. Každý uživatel může mít své vlastní prostředí s individuálně nastavenými aliasy, proměnnými prostředí a konfiguračními soubory.
- Dodržet předpisy, standardy, regulace v odvětvích s přísnými požadavky na správu uživatelských účtů a zabezpečení dat.
Zjištění uživatelů na serveru
cat /etc/passwd
- seznam účtů systému včetně uživatelských informacícompgen -u
- seznam účtů bez dalších informacícompgen -g
- seznam uživatelských skupin bez dalších informacígroups <userName>
- výpis uživatelských skupin, do nichž spadá daný uživatel
Vytvoření nového uživatele na Ubuntu Server
Uživatelské účty na Ubuntu Serveru lze tvořit prostřednictvím sudo
příkazů adduser
a useradd
s příslušnými speciálními parametry. V rámci porovnání obou příkazů, adduser
je obecně přátelštější a vysokoúrovňový nástroj poskytující více možností automatizace a přehlednější konfiguraci, zatímco useradd
je základnější a vyžaduje více manuálních úprav. Pro zjednodušení, v případě tvorby obou typů uživatelů níže je použít příkaz adduser
.
sudo adduser <userName>
Příkaz provede následující:
- Vyžádá si zadání hesla a jeho potvrzení
- Požádá o další volitelné informace -
Full name
,Room number
,Work phone
,Home phone
,Other
. - Vytvoří domovský adresář pro nového uživatele, obvykle v
/home/<userName>
. - Nastaví odpovídající skupiny a další konfigurační soubory.
Odstranění možnosti přihlásit se pro uživatele
sudo usermod -s /usr/sbin/nologin <userName>
Navrácení možnosti přihlásit se pro uživatele
sudo usermod -s /bin/bash <userName>
Uživatel systémové služby se tvoří obdobně jako běžný uživatelm, avšak s několika speciálními parametry zajišťujícími omezení vhodná pro systémový typ účtu, viz:
sudo useradd --system --no-create-home --shell /bin/false <serviceName>
Popis parametrů
--system
= účet má být vytvořen jako systémový účet. Systémové účty mají obvykle nižší UID a jsou oddělené od běžných uživatelských účtů pro lepší organizaci a zabezpečení. Systémové účty jsou také obvykle vyloučeny z některých systémových běžných úloh, jako jsou e-maily o expiraci hesel atd.--no-create-home
= účet má být vytvořen bez domovského adresáře--shell /bin/false
= Nastavuje shell uživatele na/bin/false
, což zabrání uživateli v interaktivním přihlášení. Alternativou je použití/usr/sbin/nologin
. Přihlášení není možné v obou případech - rozdíl je však ve formě odpovědi. Zatímco/usr/sbin/nologin
poskytne informaci, že přihlášení není povoleno,/bin/false
okamžitě ukončí shell session bez podání jakékoli informace, včetně záznamu v logu.
Příkaz provede následující:
- Vytvoří systémový účet bez interaktivních dotazů (nepožaduje heslo).
- Nevytvoří domovský adresář pro účet, pokud to nepožadujete přiřauením parametru
--create-home
. - Vytvoří skupinu se stejným jménem jako účet, pokud již neexistuje.
Odstranění uživatele z Ubuntu Server
deluser
je příkaz specifický pro OS Debian a jeho deriváty, jako je Ubuntu a další. Jde v podstatě o script rozšiřující funkcionalitu userdel
. Příkaz současně automaticky odstraňuje domovský adresář uživatele a zpracovat další úkoly, jako je odstranění uživatele ze všech skupin, ve kterých byl členem, stejně jako skupin bez členů.
sudo deluser <userName>
- odstranění uživatelesudo deluser --remove-home <userName>
- odstranění domovského adresáře uživatelesudo deluser <uzivatel> <skupina>
- odstranění uživatele ze skupiny
userdel
je standardní nástroj pro odstraňování uživatelů ve většině distribucí Linuxu. Je součástí balíčku pro správu uživatelů passwd
.
sudo userdel <userName>
- odstranění uživatelesudo userdel -r <userName>
- odstranění uživatele včetně domovského adresáře a mailové schránky
Správa přístupů pro jednotlivé uživatele
ls -lh
/ls -lh <cesta>
= Zjištění nastavení přístupu k jednotlivým adresářům
Přidání vlastností jednoho uživatele jinému uživateli
sudo usermod -aG <serviceName1> <serviceName2>
Nyní služba <serviceName2> má stejná oprávnění jako služba <serviceName1>
Změna vlastnictví adresáře
Každý adresář v Ubuntu server je ve vlastnictví konkrétního uživatele. Není-li uživatel přiřazený, vlastníkem je root
. Vlastník je zobrazen ve výpisu ls -lh
a může být změněn následujícím příkazem:
- Změna vlastnictví
sudo chown <userName>:<userName> soubor/slozka/cesta
- Rekruzivní změna vlastnicví (včetně všech vnořených souborů a složek)
sudo chown -R <userName>:<userName> soubor/slozka/cesta
Dobrovolný parametr
-R
značí rekruzivní změnu vlastnictví, tedy přidání shodného vlastnictví i na všechny poddružené složky daného adresáře.
Nastavení oprávnění manipulace se souborem / adresářem ( chmod
)
sudo chmod 600 <file>
- číst a zapisovat může pouze vlastníksudo chmod 400 <file>
- soubor je určen pouze pro čtení vlastníkem souborusudo chmod g+r <file>
- zapisovat může pouze vlastník, číst mohou kromě vlastníka i uživatelé skupiny
Správa oprávnění pro jednotlivé uživatele
Umožnění používat příkaz sudo
(možnost používat příkaz sudo
)
-
Možnost používat
sudo
příkazy (mohou ovlivnit celý systém) mají uživatelé ze skupiny sudo. Oprávnění uživateli tedy přidáme jeho přidáním do skupiny.usermod -aG sudo <userName>
Přidání zajišťuje parametr
-aG
- append to group (přidat do skupiny). Tedy, ke stávajícím skupinám uživatele <userName> je příkazem přidána i skupinasudo
.Ověření
sudo
oprávnění# Přepnutí se na nově vytvořeného uživatele $ su - <userName> # zkouška spuštění příkazu vyžadující sudo oprávnění (výpis root složky) $ sudo ls -la /root # write password for <userName> based on the request
Co znamená být v
sudo
skupině?Přístup k příkazu
sudo
umožňuje uživatelům vykonávat příkazy s oprávněními superuživatele (root), což zahrnuje schopnost měnit systémové soubory, instalovat software, měnit běžící služby a provádět další administrativní úkoly. Konkrétnísudo
oprávnění jednotlivých uživatelů lze současně definovat v souboru/etc/sudoers
popř./etc/sudoers.d/
. sudo visudo
umožňuje explicitně specifikovat oprávnění pro jednotlivé uživatele (jde o alternativu k umístění uživatele do skupiny
sudo
)
Specifikace SSH přístupu pro jednotlivé uživatele
K Ubuntu Server lze přistupovat prostřednictvím SSH dle konfigurace mnoha způsoby, včetně jejich kombinace. Současně, způsob přístupu lze řešit globálně pro všechny, stejně jako jednotlivě na úrovni jednotlivých uživatelů a skupin uživatelů.
Specifikace možností a jejich konfigurace v rámci SSH přístupu je specifikována v sekci SSH Keys, 2FA authentization a podobně.
Specifikace suborders pro jednotlivé uživatele
Prostřednictvím suborders soboruvisudo
lze libovolným uživatelům dát možnost vykonávání určených příkazů vyžadujících sudo oprávnění.
sudo visudo
- Povolení konkrétnímu živateli vypnout počítač
Přidejte záznam níže na konec
visudo
suborders souboruspecificUsername ALL = NOPASSWD: /sbin/poweroff, /sbin/shutdown
Nyní by měl uživatel
specificUsername
mít oprávnění používat příkazysudo poweroff
asudo shutdown now