Zpět na domů

Linux uživatelé UID GID skupiny správa

Článek rozebírá identifikaci uživatelů podle UID/GID v Linuxu, model přístupu, soubory /etc/passwd shadow group. Ukázány příkazy id getent useradd vipw pro diagnostiku a správu účtů.

Správa uživatelů Linux: UID skupiny useradd
Advertisement 728x90

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ů.

Google AdInline article slot

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.

Google AdInline article slot

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:

Google AdInline article slot
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 pro useradd
  • /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, nikoli cat /etc/passwd pro 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

Advertisement 728x90

Číst dál