107.1 Lezione 2
Certificazione: |
LPIC-1 |
---|---|
Versione: |
5.0 |
Argomento: |
107 Attività Amministrative |
Obiettivo: |
107.1 Gestire account utente e gruppo e file di sistema correlati |
Lezione: |
2 di 2 |
Introduzione
Gli strumenti a riga di comando discussi nella lezione precedente e le applicazioni grafiche che eseguono gli stessi compiti, fornite da ogni distribuzione, aggiornano una serie di file che memorizzano informazioni su utenti e gruppi.
Questi file si trovano sotto la directory /etc/
e sono:
/etc/passwd
-
Un file di sette campi delimitati da due punti contenente informazioni di base sugli utenti.
/etc/group
-
Un file di quattro campi delimitati da due punti contenente informazioni di base sui gruppi.
/etc/shadow
-
Un file di nove campi delimitati da due punti contenenti password utente criptate.
/etc/gshadow
-
Un file di quattro campi delimitati da due punti contenenti password di gruppo criptate.
Anche se questi quattro file sono in testo semplice, non dovrebbero essere modificati direttamente, ma sempre attraverso gli strumenti forniti dalla distribuzione che state usando.
/etc/passwd
Questo è un file leggibile da tutti e contiene una lista di utenti, ognuno su una linea separata. Ogni linea consiste di sette campi delimitati da due punti:
- Username
-
Il nome usato quando l’utente accede al sistema.
- Password
-
La password criptata (o una
x
se si usano le shadow password). - User ID (UID)
-
Il numero ID assegnato all’utente nel sistema.
- Group ID (GID)
-
Il numero del gruppo primario dell’utente nel sistema.
- GECOS
-
Un campo di commento opzionale, che è usato per aggiungere informazioni extra sull’utente (come il nome completo). Il campo può contenere più voci separate da virgola.
- Home Directory
-
Il percorso assoluto della home directory dell’utente.
- Shell
-
Il percorso assoluto del programma che viene lanciato automaticamente quando l’utente accede al sistema (di solito una shell interattiva come
/bin/bash
).
/etc/group
Questo è un file leggibile da tuti che contiene una lista di gruppi, ognuno su una linea separata. Ogni linea consiste di quattro campi delimitati da due punti:
- Group Name
-
Il nome del gruppo.
- Group Password
-
La password criptata del gruppo (o una
x
se si usano le shadow password). - Group ID (GID)
-
Il numero ID assegnato al gruppo nel sistema.
- Member List
-
Una lista delimitata da virgole di utenti appartenenti al gruppo, eccetto quelli per i quali questo è il gruppo principale.
/etc/shadow
Questo è un file leggibile solo da root e da utenti con privilegi di root che contiene password utente criptate, ciascuna su una linea separata. Ogni linea consiste di nove campi delimitati da due punti:
- Username
-
Il nome usato quando l’utente accede al sistema.
- Encrypted Password
-
La password criptata dell’utente (se il valore inizia con
!
, l’account è bloccato). - Date of Last Password Change
-
La data dell’ultimo cambio di password, come numero di giorni dal 01/01/1970 (un valore di 0 significa che l’utente deve cambiare la password al suo prossimo login).
- Minimum Password Age
-
Il numero minimo di giorni, dopo un cambio di password, che devono trascorrere prima che l’utente sia autorizzato a cambiare nuovamente la password.
- Maximum Password Age
-
Il numero massimo di giorni che devono trascorrere prima che sia richiesto un cambio di password.
- Password Warning Period
-
Il numero di giorni, prima che la password scada, durante i quali l’utente viene avvertito che la password deve essere cambiata.
- Password Inactivity Period
-
Il numero di giorni dopo la scadenza della password durante i quali l’utente dovrebbe aggiornare la password. Dopo questo periodo, se l’utente non cambia la password, l’account sarà disabilitato.
- Account Expiration Date
-
La data, espressa come numero di giorni dal 01/01/1970, in cui l’account utente sarà disattivato (un campo vuoto significa che l’account utente non scadrà mai).
- A reserved field
-
Un campo che è riservato per un uso futuro.
/etc/gshadow
Questo è un file leggibile solo da root e da utenti con privilegi di root che contiene password di gruppo criptate, ciascuna su una linea separata. Ogni linea consiste di quattro campi delimitati da due punti:
- Group Name
-
Il nome del gruppo.
- Encrypted Password
-
La password criptata per il gruppo (è usata quando un utente, che non è membro del gruppo, vuole unirsi al gruppo usando il comando
newgrp
— se la password inizia con!
, a nessuno è permesso accedere al gruppo connewgrp
). - Group Administrators
-
Una lista delimitata da virgole degli amministratori del gruppo (possono cambiare la password del gruppo e possono aggiungere o rimuovere membri del gruppo con il comando
gpasswd
). - Group Members
-
Una lista delimitata da virgole dei membri del gruppo.
Filtrare i Database delle Password e dei Gruppi
Molto spesso può essere necessario rivedere le informazioni su utenti e gruppi memorizzati in questi quattro file e cercare record specifici. Per eseguire questo compito, puoi usare il comando grep
o in alternativa concatenare cat
e grep
.
# grep emma /etc/passwd emma:x:1020:1020:User Emma:/home/emma:/bin/bash # cat /etc/group | grep db-admin db-admin:x:1050:grace,frank
Un altro modo per accedere a questi database è usare il comando getent
. In generale, questo comando visualizza le voci dei database supportati dalle librerie Name Service Switch (NSS) e richiede il nome del database e una chiave di ricerca. Se non viene fornito alcun argomento chiave, vengono visualizzate tutte le voci del database specificato (a meno che il database non supporti l’enumerazione). Altrimenti, se vengono forniti uno o più argomenti chiave, il database viene filtrato di conseguenza.
# getent passwd emma emma:x:1020:1020:User Emma:/home/emma:/bin/bash # getent group db-admin db-admin:x:1050:grace,frank
Il comando getent
non richiede l’autorità di root; devi solo essere in grado di leggere il database da cui vuoi recuperare i record.
Note
|
Ricorda che |
Esercizi Guidati
-
Osserva il seguente output e rispondi alle seguenti domande:
# cat /etc/passwd | grep '\(root\|mail\|catherine\|kevin\)' root:x:0:0:root:/root:/bin/bash mail:x:8:8:mail:/var/spool/mail:/sbin/nologin catherine:x:1030:1025:User Chaterine:/home/catherine:/bin/bash kevin:x:1040:1015:User Kevin:/home/kevin:/bin/bash # cat /etc/group | grep '\(root\|mail\|db-admin\|app-developer\)' root:x:0: mail:x:8: db-admin:x:1015:emma,grace app-developer:x:1016:catherine,dave,christian # cat /etc/shadow | grep '\(root\|mail\|catherine\|kevin\)' root:$6$1u36Ipok$ljt8ooPMLewAhkQPf.lYgGopAB.jClTO6ljsdczxvkLPkpi/amgp.zyfAN680zrLLp2avvpdKA0llpssdfcPppOp:18015:0:99999:7::: mail:*:18015:0:99999:7::: catherine:$6$ABCD25jlld14hpPthEFGnnssEWw1234yioMpliABCdef1f3478kAfhhAfgbAMjY1/BAeeAsl/FeEdddKd12345g6kPACcik:18015:20:90:5::: kevin:$6$DEFGabc123WrLp223fsvp0ddx3dbA7pPPc4LMaa123u6Lp02Lpvm123456pyphhh5ps012vbArL245.PR1345kkA3Gas12P:18015:0:60:7:2:: # cat /etc/gshadow | grep '\(root\|mail\|db-admin\|app-developer\)' root:*:: mail:*:: db-admin:!:emma:emma,grace app-developer:!::catherine,dave,christian
-
Qual è l’ID utente (UID) e l’ID gruppo (GID) di
root
ecatherine
? -
Qual è il nome del gruppo principale di
kevin
? Ci sono altri membri in questo gruppo? -
Quale shell è impostata per
mail
? Che cosa significa? -
Chi sono i membri del gruppo
app-developer
? Quali tra questi membri sono amministratori del gruppo e quali sono membri ordinari? -
Qual è la durata minima della password per
catherine
? E qual è la durata massima della password? -
Qual è il periodo di inattività della password per
kevin
?
-
-
Per convenzione, quali ID sono assegnati agli account di sistema e quali agli utenti ordinari?
-
Come si fa a scoprire se un account utente, che prima era in grado di accedere al sistema, ora è bloccato? Supponiamo che il vostro sistema utilizzi le shadow password.
Esercizi Esplorativi
-
Crea un account utente chiamato
christian
usando il comandouseradd -m
e identifica il suo User ID (UID), Group ID (GID) e la shell. -
Identifica il nome del gruppo primario di
christian
. Che cosa puoi dedurre? -
Usando il comando
getent
, esamina le informazioni sulla scadenza della password per l’account utentechristian
. -
Aggiungi il gruppo
editor
ai gruppi secondari dichristian
. Assumi che questo gruppo contenga giàemma
,dave
efrank
come membri ordinari. Come puoi verificare che non ci siano amministratori per questo gruppo? -
Esegui il comando
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
e descrivi l’output che ricevi in termini di permessi dei file. Quali di questi quattro file sono "mascherati" per ragioni di sicurezza? Supponiamo che il tuo sistema usi le shadow password.
Sommario
In questa lezione abbiamo imparato:
-
La posizione dei file che memorizzano le informazioni su utenti e gruppi.
-
La gestione delle informazioni su utenti e gruppi memorizzate nei database di password e gruppi.
-
Il recupero delle informazioni dai database di password e gruppi.
I seguenti file e comandi sono stati discussi in questa lezione:
/etc/passwd
-
Il file contenente informazioni di base sugli utenti.
/etc/group
-
Il file contenente informazioni di base sui gruppi.
/etc/shadow
-
Il file contenente le password utente criptate.
/etc/gshadow
-
Il file contenente le password di gruppo criptate.
getent
-
Filtra i database delle password e dei gruppi.
Risposte agli Esercizi Guidati
-
Osservate il seguente output e rispondi alle seguenti domande:
# cat /etc/passwd | grep '\(root\|mail\|catherine\|kevin\)' root:x:0:0:root:/root:/bin/bash mail:x:8:8:mail:/var/spool/mail:/sbin/nologin catherine:x:1030:1025:User Chaterine:/home/catherine:/bin/bash kevin:x:1040:1015:User Kevin:/home/kevin:/bin/bash # cat /etc/group | grep '\(root\|mail\|db-admin\|app-developer\)' root:x:0: mail:x:8: db-admin:x:1015:emma,grace app-developer:x:1016:catherine,dave,christian # cat /etc/shadow | grep '\(root\|mail\|catherine\|kevin\)' root:$6$1u36Ipok$ljt8ooPMLewAhkQPf.lYgGopAB.jClTO6ljsdczxvkLPkpi/amgp.zyfAN680zrLLp2avvpdKA0llpssdfcPppOp:18015:0:99999:7::: mail:*:18015:0:99999:7::: catherine:$6$ABCD25jlld14hpPthEFGnnssEWw1234yioMpliABCdef1f3478kAfhhAfgbAMjY1/BAeeAsl/FeEdddKd12345g6kPACcik:18015:20:90:5::: kevin:$6$DEFGabc123WrLp223fsvp0ddx3dbA7pPPc4LMaa123u6Lp02Lpvm123456pyphhh5ps012vbArL245.PR1345kkA3Gas12P:18015:0:60:7:2:: # cat /etc/gshadow | grep '\(root\|mail\|db-admin\|app-developer\)' root:*:: mail:*:: db-admin:!:emma:emma,grace app-developer:!::catherine,dave,christian
-
Qual è l’ID utente (UID) e l’ID gruppo (GID) di
root
ecatherine
?L’UID e il GID di
root
sono 0 e 0, mentre l’UID e il GID dicatherine
sono 1030 e 1025. -
Qual è il nome del gruppo principale di
kevin
? Ci sono altri membri in questo gruppo?Il nome del gruppo è
db-admin
. Ancheemma
egrace
sono in questo gruppo. -
Quale shell è impostata per
mail
? Che cosa significa?mail
è un account utente di sistema e la sua shell è/sbin/nologin
. Infatti, gli account utente di sistema comemail
,ftp
,news
edaemon
sono usati per eseguire compiti amministrativi e quindi il normale login dovrebbe essere impedito per questi account. Questo è il motivo per cui la shell è solitamente impostata su/sbin/nologin
o/bin/false
. -
Chi sono i membri del gruppo
app-developer
? Quali tra questi membri sono amministratori del gruppo e quali sono membri ordinari?I membri sono
catherine
,dave
echristian
e sono tutti membri ordinari. -
Qual è la durata minima della password per
catherine
? E qual è la durata massima della password?La durata minima della password è di 20 giorni, mentre quella massima è di 90 giorni.
-
Qual è il periodo di inattività della password per
kevin
?Il periodo di inattività della password è di 2 giorni. Durante questo periodo
kevin
deve aggiornare la password, altrimenti l’account verrà disabilitato.
-
-
Per convenzione, quali ID sono assegnati agli account di sistema e quali agli utenti ordinari?
Gli account di sistema di solito hanno UID inferiori a 100 o tra 500 e 1000, mentre gli utenti ordinari hanno UID a partire da 1000, anche se alcuni sistemi legacy possono iniziare la numerazione da 500. L’utente
root
ha UID 0. Ricorda che i valoriUID_MIN
eUID_MAX
in/etc/login.defs
definiscono la gamma di UID usati per la creazione degli utenti ordinari. Dal punto di vista di LPI Linux Essentials e LPIC-1, gli account di sistema hanno UID inferiori a 1000 e gli utenti ordinari hanno UID superiori a 1000. -
Come si fa a scoprire se un account utente, che prima era in grado di accedere al sistema, ora è bloccato? Supponiamo che il vostro sistema utilizzi le shadow password.
Quando si usano le password shadow, il secondo campo in
/etc/passwd
contiene il caratterex
per ogni account utente, perché le password utente criptate sono memorizzate in/etc/shadow
. In particolare, la password criptata di un account utente è memorizzata nel secondo campo di questo file e, se inizia con un punto esclamativo, l’account è bloccato.
Risposte agli Esercizi Esplorativi
-
Crea un account utente chiamato
christian
usando il comandouseradd -m
e identifica il suo User ID (UID), Group ID (GID) e la shell.# useradd -m christian # cat /etc/passwd | grep christian christian:x:1050:1060::/home/christian:/bin/bash
L’UID e il GID di
christian
sono rispettivamente 1050 e 1060 (il terzo e il quarto campo in/etc/passwd
)./bin/bash
è la shell impostata per questo account utente (il settimo campo in/etc/passwd
). -
Identifica il nome del gruppo primario di
christian
. Che cosa puoi dedurre?# cat /etc/group | grep 1060 christian:x:1060:
Il nome del gruppo primario di
christian
èchristian
(il primo campo in/etc/group
). PertantoUSERGROUPS_ENAB
in/etc/login.defs
è impostato su yes in modo cheuseradd
crei di default un gruppo con lo stesso nome dell’account utente. -
Usando il comando
getent
, esamina le informazioni sulla scadenza della password per l’account utentechristian
.# getent shadow christian christian:!:18015:0:99999:7:::
L’account utente
christian
non ha la password impostata ed è ora bloccato (il secondo campo in/etc/shadow
contiene un punto esclamativo). Non c’è un’età minima e massima della password per questo account utente (il quarto e il quinto campo in/etc/shadow
sono impostati a 0 e 99999 giorni), mentre il periodo di avviso della password è impostato a 7 giorni (il sesto campo in/etc/shadow
). Infine, non c’è un periodo di inattività (il settimo campo in/etc/shadow
) e l’account non scade mai (l’ottavo campo in/etc/shadow
). -
Aggiungi il gruppo
editor
ai gruppi secondari dichristian
. Assumi che questo gruppo contenga giàemma
,dave
efrank
come membri ordinari. Come puoi verificare che non ci siano amministratori per questo gruppo?# cat /etc/group | grep editor editor:x:1100:emma,dave,frank # usermod -a -G editor christian # cat /etc/group | grep editor editor:x:1100:emma,dave,frank,christian # cat /etc/gshadow | grep editor editor:!::emma,dave,frank,christian
Il terzo e il quarto campo in
/etc/ghadow
contengono amministratori e membri ordinari per il gruppo specificato. Quindi, poiché il terzo campo è vuoto pereditor
, non ci sono amministratori per questo gruppo (emma
,dave
,frank
echristian
sono tutti membri ordinari). -
Esegui il comando
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
e descrivi l’output che ti dà in termini di permessi dei file. Quali di questi quattro file sono "mascherati" per ragioni di sicurezza? Supponiamo che il tuo sistema usi le password shadow.# ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow -rw-r--r-- 1 root root 853 mag 1 08:00 /etc/group -rw-r----- 1 root shadow 1203 mag 1 08:00 /etc/gshadow -rw-r--r-- 1 root root 1354 mag 1 08:00 /etc/passwd -rw-r----- 1 root shadow 1563 mag 1 08:00 /etc/shadow
I file
/etc/passwd
e/etc/group
sono leggibili da tutti e sono "mascherati" per ragioni di sicurezza. Quando si usano le password shadow, si può vedere unax
nel secondo campo di questi file, perché le password criptate per utenti e gruppi sono memorizzate in/etc/shadow
e/etc/gshadow
, che sono leggibili solo da root e, su alcuni sistemi, anche dai membri appartenenti al grupposhadow
.