Linux: uživatelské a skupinové identity a správa účtů
Jádro Linuxu pracuje s číselnými identifikátory UID a GID. Uživatelské jméno je pouze přehledné zobrazení uložené v /etc/passwd. Procesy a soubory jsou vázány právě na čísla, proto změna jména bez zachování UID znamená ztrátu přístupu ke zdrojům.
Zkontrolovat aktuálního uživatele:
id
# uid=1001(deployer) gid=1001(deployer) groups=1001(deployer),27(sudo),998(docker)
id -u # Pouze UID
whoami # Pouze jméno
getent passwd deployer
getent funguje s moduly NSS, včetně LDAP, na rozdíl od přímého čtení souborů.
Model přístupu a vlastníci
Každý inode obsahuje vlastníka (UID) a skupinu (GID). Jádro ověřuje oprávnění podle schématu: proces UID/GID → vlastník? → skupina? → ostatní. První shoda určuje přístup.
Příklad:
ls -la /var/log/nginx/
# -rw-r----- 1 www-data adm 187234 Mar 26 10:41 access.log
Vlastník www-data, skupina adm. Proces s UID www-data získá oprávnění vlastníka a ignoruje skupinová práva.
Rozsahy UID:
- 0: root
- 1–999: systémové (démony, bez přihlášení)
- 1000+: běžné uživatele
- 65534: nobody
Nastavuje se v /etc/login.defs.
Systémové uživatele blokuje /usr/sbin/nologin nebo /bin/false:
awk -F: '$3 < 1000 && $3 > 0 {print $1, $3, $7}' /etc/passwd
Skupiny: sdílený přístup
Primární skupina (GID v /etc/passwd) – pro nové soubory. Doplňkové (supplementary) – v /etc/group.
Kontrola:
groups # Aktuální skupiny
getent group docker # Členové skupiny
docker:x:998:deployer,ci
Skupiny usnadňují správu: přidejte uživatele do docker – získá přístup k soketu bez sudo.
Konfigurační soubory
/etc/passwd (čtení všemi):
deployer:x:1001:1001:Deploy Bot,,:/home/deployer:/bin/bash
Pole: uživatelské jméno | heslo (x) | UID | GID | GECOS | domovská složka | shell.
/etc/shadow (pouze root): hash SHA-512 nebo yescrypt, termíny platnosti.
deployer:$6$rounds=5000$xPwF...$kE9...hash...:19800:0:99999:7:::
/etc/group:
docker:x:998:deployer,ci-bot
Bezpečné úpravy:
vipw # passwd s uzamčením
vigr # group
pwck # Kontrola
Vytváření a nastavení uživatelů
useradd s klíčovými možnostmi:
| Klíč | Popis |
|------|-----------|
| -m | Domovská složka |
| -s | Shell |
| -G | Doplňkové skupiny |
| -r | Systémový |
| -u | UID |
Příklady:
useradd -m -s /bin/bash -G sudo,docker ivan
useradd -r -s /usr/sbin/nologin ci-bot
passwd ivan # Nastavit heslo
chpasswd <<< 'ivan:secret'
passwd -e ivan # Změna při přihlášení
useradd -m kopíruje /etc/skel, chown domovskou složku.
Umask se odečítá od 0666 (soubory) / 0777 (adresáře). Standard: 0022.
Prostředí a šablony
/etc/skel – šablona pro nové domovské adresáře: .bashrc, .profile.
Globální nastavení:
/etc/default/useradd: výchozí hodnoty prouseradd/etc/profile.d/*.sh: prostředí pro přihlášení/etc/login.defs: umask, rozsahy UID
Důležité:
- UID určuje přístup, nikoli uživatelské jméno.
- Používejte
getent, nikolicat /etc/passwdpro NSS. - Skupiny jsou hlavním mechanismem delegace oprávnění.
- Konfigurační soubory upravujte pouze přes
vipw/vigr. - Systémové účty:
nologin, UID < 1000.
— Editorial Team
Zatím žádné komentáře.