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é, žesudo
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
: Pokudsudo
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.