Product SiteDocumentation Site

8.4. Bases de dades d'usuaris i de grups

La llista d'usuaris s'emmagatzema normalment al fitxer /etc/passwd, mentre que el fitxer /etc/shadow emmagatzema les contrasenyes xifrades («hashed»). Tots dos són fitxers de text, en un format relativament senzill, que es poden llegir i modificar amb un editor de text. Cada usuari apareix en una línia amb diversos camps separats per dos punts (“:”).

8.4.1. Llista d'usuaris: /etc/passwd

Aquesta és la llista de camps del fitxer /etc/passwd:
  • nom d'usuari, per exemple rhertzog;
  • password: és una contrasenya xifrada per una funció d'un sol sentit (crypt), que es basa en DES, MD5, SHA-256 o SHA-512. El valor especial “x” indica que la contrasenya encriptada s'emmagatzema a /etc/shadow;
  • uid: número únic que identifica cada usuari;
  • gid: número únic per al grup principal de l'usuari (Debian crea per defecte un grup específic per a cada usuari);
  • GECOS: camp de dades que normalment conté el nom complet de l'usuari;
  • directori d'inici de sessió, assignat a l'usuari per a l'emmagatzematge dels seus fitxers personals (la variable d'entorn $HOME generalment apunta aquí);
  • programa a executar en iniciar la sessió. Normalment es tracta d'un intèrpret d'ordres («shell»), que dóna llibertat a l'usuari. Si especifiqueu /bin/false (que no fa res i retorna el control immediatament), l'usuari no podrà iniciar la sessió.
Com s'ha dit abans es pot modificar aquest fitxer directament. No obstant això, hi ha maneres més elegants d'aplicar-hi canvis, i que es descriuen a Secció 8.4.3, «Modificar un compte o contrasenya ja existents».

8.4.2. El fitxer de les contrasenyes ocultes i encriptades: /etc/shadow

El fitxer /etc/shadow conté els següents camps:
  • usuari;
  • contrasenya encriptada;
  • diversos camps que gestionen el venciment de la contrasenya.
Es poden fer expirar les contrasenyes utilitzant aquest fitxer o establint el moment fins que el compte quedi desactivat després que la contrasenya hagi expirat.

8.4.3. Modificar un compte o contrasenya ja existents

Les següents ordres permeten la modificació de la informació emmagatzemada en camps específics de les bases de dades d'usuari: passwd permet a un usuari normal canviar la seva contrasenya, que al seu torn, actualitza el fitxer /etc/shadow (chpasswd permet als administradors actualitzar de cop les contrasenyes d'una llista d'usuaris); chfn («CHange Full Name» en anglès o “Canvia el nom complet”), reservat per al superusuari («root»), modifica el camp GECOS. chsh (de l'anglès «CHange SHell») permet a l'usuari canviar el seu intèrpret d'entrada; no obstant això, les opcions disponibles es limitaran a les llistades a /etc/shells; l'administrador, d'altra banda, no està vinculat per aquesta restricció i pot establir la «shell» a qualsevol programa de la seva elecció.
Finalment, l'ordre chage (de l'anglès «CHange AGE») permet a l'administrador canviar la configuració del venciment de la contrasenya (l'opció -l usuari llistarà la configuració actual). També podeu forçar l'expiració d'una contrasenya utilitzant l'ordre passwd -e usuari, que requerirà que l'usuari canviï la seva contrasenya la pròxima vegada que iniciï sessió.
A més d'aquestes eines, l'ordre usermod permet modificar tots els detalls esmentats anteriorment.

8.4.4. Desactivar un compte

Podeu trobar-vos amb la necessitat de “desactivar un compte” (bloquejar un usuari), com a mesura disciplinària, per a una investigació, o simplement en el cas d'una absència prolongada o definitiva d'un usuari. Un compte inhabilitat significa que l'usuari no pot entrar o accedir a la màquina. El compte roman intacte a la màquina i no se suprimeix cap fitxer o dada; simplement és inaccessible. Això s'aconsegueix utilitzant l'ordre passwd -l usuari («lock» o bloquejar). Tornar a activar el compte es fa de manera similar, amb l'opció -u («unlock» o desbloquejar). Això, però, només impedeix que l'usuari iniciï la sessió amb contrasenya. L'usuari encara pot accedir al sistema mitjançant una clau SSH (si està configurat). Per evitar aquesta possibilitat, també heu de fer expirar el compte fent servir chage -E 1 usuari o usermod -e 1 usuari (donant un valor de -1 en qualsevol d'aquestes ordres es fixarà la data de caducitat a mai). Per a desactivar (temporalment) tots els comptes d'usuari només cal crear el fitxer /etc/nologin.
Podeu desactivar un compte d'usuari no només bloquejant-lo com s'ha descrit anteriorment, sinó també canviant el seu intèrpret d'ordres d'inici de sessió predeterminat (chsh -s intèrpret usuari). Amb el primer paràmetre a /usr/sbin/nologin, un usuari obté un missatge cortès informant que no és possible l'inici de sessió, mentre que /bin/false només acaba al temps que retorna false. No hi ha manera per a restaurar l'intèrpret d'ordres anterior. Heu d'obtenir i mantenir aquesta informació abans de canviar la configuració. Aquests intèrprets d'ordres s'utilitzen sovint per a usuaris del sistema que no requereixen cap necessitat d'inici de sessió.

8.4.5. Llista de grups: /etc/group

Els grups estan llistats al fitxer /etc/group, una simple base de dades en text pla en un format similar al del fitxer /etc/passwd, amb els següents camps:
  • nom del grup;
  • contrasenya (opcional): només s'utilitza per unir-se a un grup quan un no és un membre habitual (amb les ordres newgrp o sg, vegeu la barra lateral TORNAR A LES BASES Treballar amb diversos grups);
  • gid: número únic d'identificació de grup;
  • llista de membres: llista de noms d'usuaris que són membres del grup, separats per comes.
Les ordres addgroup i delgroup afegeixen o suprimeixen un grup, respectivament. L'ordre groupmod modifica la informació d'un grup (el seu gid o identificador). L'ordre gpasswd grup canvia la contrasenya del grup, mentre que l'ordre gpasswd -rgrup el suprimeix.