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
sudopří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/nologinposkytne informaci, že přihlášení není povoleno,/bin/falseokamž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/cestaDobrovolný parametr
-Rznačí 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
sudopří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í
sudooprá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 requestCo znamená být v
sudoskupině?Přístup k příkazu
sudoumožň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ísudooprávnění jednotlivých uživatelů lze současně definovat v souboru/etc/sudoerspopř./etc/sudoers.d/. sudo visudoumožň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
visudosuborders souboruspecificUsername ALL = NOPASSWD: /sbin/poweroff, /sbin/shutdownNyní by měl uživatel
specificUsernamemít oprávnění používat příkazysudo poweroffasudo shutdown now