La comanda grpck a Linux: comprovar /etc/group i /etc/gshadow
La comanda grpck (group check) comprova la coherència de /etc/group i /etc/gshadow, els fitxers on Linux guarda els grups. És la germana de pwck, que fa el mateix amb els usuaris. Fes-la servir després d’editar els fitxers de grups a mà, de copiar-los d’un altre servidor o si les comandes de grups donen errors estranys.
Sintaxi
sudo grpck [opcions] [group [gshadow]] Per defecte revisa /etc/group i /etc/gshadow. També li pots passar altres fitxers com a arguments.
Opcions
| Opció | Què fa |
|---|---|
-r | Només lectura: mostra els problemes però respon «no» a totes les preguntes i no canvia res |
-s | Ordena les entrades de /etc/group i /etc/gshadow per GID |
-S | Silencia els avisos més discutibles, com les diferències de membres entre group i gshadow |
-R dir | Treballa sobre un sistema muntat a dir (fa un chroot) |
-r i -s no es poden combinar.
Què comprova
Per a cada grup, que:
- la línia tingui el nombre correcte de camps (quatre);
- el nom del grup sigui únic i vàlid;
- el GID sigui vàlid;
- els membres i els administradors siguin usuaris que existeixen;
- hi hagi l’entrada corresponent a
/etc/gshadow(i a l’inrevés).
Exemples
Revisar sense tocar res:
sudo grpck -r En un sistema sa no mostra res i acaba amb codi 0. Si hi ha problemes, veuràs una cosa així (sortida real d’uns fitxers de prova amb errors):
duplicate group entry
delete line 'projecte:x:2001:joan,ningu'? No
group projecte: no user ningu
delete member 'ningu'? No
'ningu' is a member of the 'projecte' group in /etc/group but not in /etc/gshadow
duplicate group entry
delete line 'projecte:x:2002:'? No
invalid group file entry
delete line 'vendes:x:2003'? No
grpck: no changes Aquí hi ha quatre problemes: el grup projecte és duplicat (dues línies amb GID diferents), té un membre (ningu) que no existeix, aquest membre no apareix a gshadow, i a la línia de vendes li falta el quart camp (la llista de membres, encara que sigui buida, necessita els dos punts: vendes:x:2003:).
Comprovar el codi de sortida en un script:
if ! sudo grpck -r >/dev/null 2>&1; then
echo "Hi ha problemes a /etc/group o /etc/gshadow"
fi Revisar unes còpies abans de posar-les en producció:
sudo grpck -r ./group.nou ./gshadow.nou Ordenar els fitxers per GID (els modifica: fes-ne una còpia abans):
sudo cp -a /etc/group /etc/group.bak
sudo cp -a /etc/gshadow /etc/gshadow.bak
sudo grpck -s Corregir els problemes
Sense -r, grpck et pregunta per a cada error si vols esborrar la línia o el membre problemàtic. Respon amb calma: si esborres una línia de grup, aquest grup desapareix. Els altres avisos es corregeixen amb les eines de sempre:
| Problema | Com es corregeix |
|---|---|
| Membre que no existeix | sudo gpasswd -d usuari grup |
Grup que falta a gshadow | sudo grpconv, que regenera gshadow a partir de group |
| Nom o GID incorrecte | groupmod -n o -g |
| Grup sobrer | groupdel |
Si has d’editar els fitxers a mà, fes-ho amb sudo vigr (i sudo vigr -s per a gshadow), que els bloqueja mentre treballes.
Codis de sortida
| Codi | Significat |
|---|---|
| 0 | Tot correcte |
| 1 | Error de sintaxi de la comanda |
| 2 | Hi ha una o més entrades incorrectes |
| 3 | No es poden obrir els fitxers |
| 4 | No es poden bloquejar els fitxers |
| 5 | No es poden actualitzar els fitxers |
Aclariment
En algunes guies, i en una versió anterior d’aquest article, apareixen opcions com grpck -a (corregir automàticament) o -q (sortida compacta), i es diu que -r serveix per indicar un fitxer. No és correcte: grpck no té -a ni -q, -r vol dir read-only i els fitxers es passen directament com a arguments.
Comandes relacionades
pwck: el mateix per a/etc/passwdi/etc/shadow.groupadd,groupmodigroupdel: gestionar grups.newgrp: canviar de grup dins la sessió.- Usuaris i grups a Linux: el format de
/etc/group.
Esta web usa cookies.