Press "Enter" to skip to content

Debian 12 – Jak zjistit „superuživatele“?

V Linuxu mohu zjistit přehled uživatelů a informací o jejich právech několika způsoby. Základní informace o uživatelích jsou uloženy v souborech /etc/passwd a /etc/group. Root práva (neboli práva superuživatele) jsou obvykle přidělena uživatelům, kteří jsou členy skupiny root nebo mají možnost spouštět příkazy jako root prostřednictvím sudo. Zde je několik příkazů, které mi pomohou získat požadované informace:

Získání seznamu všech uživatelů

Zobrazit obsah souboru /etc/passwd:

cat /etc/passwd

Tento soubor obsahuje řádky s informacemi o uživatelích, včetně jejich uživatelských jmen a ID uživatele (UID). Root uživatel má obvykle UID 0.

Zjištění, kdo má root práva

Zobrazit členy skupiny root:

getent group root

Tento příkaz vypíše členy skupiny root, což jsou uživatelé s root právy.

Zobrazit uživatele s možností používat sudo:

grep '^sudo:' /etc/group

Tento příkaz zjistí, kteří uživatelé jsou ve skupině sudo. Členové této skupiny mohou spouštět příkazy jako root pomocí sudo.

Zkontroluji soubor sudoers pro specifická pravidla:

sudo cat /etc/sudoers
sudo visudo -c

Soubor /etc/sudoers obsahuje pravidla pro to, kteří uživatelé nebo skupiny mohou používat sudo. Příkaz visudo -c zkontroluje syntaxi tohoto souboru bez jeho úpravy. Přímé editace tohoto souboru se nedoporučuje, místo toho použijte sudo visudo

Vždy je třeba být opatrný při práci s těmito systémovými soubory a příkazy, zejména pokud provádím nějaké změny. Chyby mohou vést k problémům se systémovou bezpečností nebo přístupem.

Možné potíže se sudo

Pokud se setkáte s chybou cat: /etc/sudoers: No such file or directory při pokusu o zobrazení obsahu souboru /etc/sudoers, to může znamenat několik věcí:

  • Soubor neexistuje: To je neobvyklé, protože /etc/sudoers je standardní součástí systémů, které používají sudo pro správu oprávnění. Jeho absence může naznačovat problém s instalací nebo konfigurací sudo.
  • Problém se souborovým systémem nebo oprávněními: Mohlo dojít k poškození souborového systému nebo mohou být nastavena nesprávná oprávnění, což zabraňuje přístupu k souboru.

Řešení:

  • Zkontroluji, zda je nainstalováno sudo: Je možné, že sudo není v systému nainstalováno. To mohu ověřit a případně sudo nainstalovat pomocí správce balíčků vaší distribuce. Pro Debian a odvozené distribuce mohu použít (Musím být přihlášeni jako root nebo jiný uživatel s odpovídajícími oprávněními pro instalaci softwaru.):
apt-get update
apt-get install sudo
  • Obnovení /etc/sudoers: Pokud sudo je již nainstalováno, ale soubor /etc/sudoers chybí, mohu se pokusit obnovit standardní verzi souboru. Toto může být riskantní, pokud nejsem obeznámen s očekávaným obsahem souboru. V některých případech může být bezpečnější vyhledat pomoc od zkušenějšího systémového administrátora nebo konzultovat dokumentaci vaší distribuce pro přesný formát souboru /etc/sudoers.

    Jako obecný příklad, základní /etc/sudoers soubor může vypadat takto (ale nekopírujte to bez pochopení, co to dělá):
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d

Pokud si nejsem jist, co dělám, je vždy lepší konzultovat s někým zkušenějším nebo vyhledat specifické návody pro danou situaci. Ztráta nebo poškození souboru /etc/sudoers může mít vážné důsledky pro správu systému a bezpečnost.