it-swarm-eu.dev

Změňte gid konkrétní skupiny

Chtěl bych změnit ID skupiny konkrétní skupiny. Existuje tak může řešení pro změnu gid souboru nebo adresářů. Ale to není to, co chci. Existuje způsob, jak to udělat?

36
mibzer

GID je primární identifikátor skupiny. Pokud jde o systém, jiná GID je jiná skupina. Chcete-li změnit GID, budete muset upravit všechna místa, kde se tento GID používá.

Neměli byste považovat GID za významný a místo toho používat názvy skupin; název skupiny můžete změnit jediným příkazem (v systému Linux: groupmod -n NEW_GROUP_NAME OLD_GROUP_NAME).

Pokud však opravdu chcete změnit GID, takto:

  • Nejprve budete možná muset odhlásit uživatele ve skupině a zabít procesy, které tuto skupinu mají jako svou efektivní, skutečnou nebo uloženou skupinu.
  • Změňte položku v databázi skupiny. V systému Linux spusťte groupmod -g NEWGID GROUPNAME. V jiných systémech použijte nástroj pro správu tohoto systému nebo vigr, pokud je k dispozici, nebo upravte /etc/group podle potřeby.
  • Změňte skupinu všech souborů ve vašem systému, které patří do staré skupiny.

    find / -gid OLDGID ! -type l -exec chgrp NEWGID {} \;
    
  • chgrp vymaže příznaky suid a sgid, obnovte je.

  • Pokud máte archiv, který používá starý GID, znovu jej vytvořte.
  • Pokud máte nějaký konfigurační soubor nebo skript, který odkazuje na starý GID, aktualizujte jej.
  • Restartujte všechny procesy, které musí používat nový GID.

Nejjednodušší způsob je použít groupmod -g <NEW_GID> <groupname>

Dalším způsobem je editace /etc/group přímo. Třetí pole v každém sloupci je gid.

Pokud je změněná skupina hlavní skupinou uživatele, /etc/passwd musí být také upraveno: usermod -g <NEW_GID> <username>.

31
jofel

find/path -group foo -print0 | xargs -0 chgrp bar

0
jirib