GNU/Linux >> Linux Esercitazione >  >> Linux

Guida per principianti all'amministrazione di utenti e gruppi in Linux

Ogni utente in Linux ha un ID utente univoco (UID ), che è un numero intero ordinario e un nome utente associato. Gli utenti accedono utilizzando i loro nomi utente, ma il sistema utilizza gli UID associati. Ogni account utente ha anche una home directory e una shell di accesso. Quando gli utenti accedono, vengono inseriti nella loro home directory e la loro shell di accesso viene eseguita. Tutte queste informazioni sull'account utente sono archiviate in /etc/passwd file.

Ogni utente appartiene anche a uno o più gruppi. È possibile assegnare utenti diversi allo stesso gruppo. L'accesso può essere concesso a un gruppo e a tutti i membri del gruppo vengono concessi gli stessi privilegi di accesso. Ogni account di gruppo in Linux ha un ID gruppo univoco (GID ) e un nome di gruppo associato. Le informazioni sul gruppo sono archiviate in /etc/group file.

RedHat Linux utilizza uno schema UPG (User Private Group) . Quando viene aggiunto un nuovo account utente, viene creato anche un nuovo gruppo privato utente. Il gruppo utente privato ha lo stesso nome dell'utente e il nuovo utente è l'unico membro di questo gruppo.

Sia gli utenti che i gruppi utilizzano password shadow. Le password vengono sottoposte a hash e memorizzate in file diversi, /etc/shadow per gli utenti e /etc/gshadow per gruppi. La sicurezza migliora memorizzando le password con hash in file "ombra", poiché questi file sono leggibili solo dall'utente root. L'uso di password shadow fornisce anche parametri di aging delle password e consente di applicare le politiche di sicurezza, utilizzando il file /etc/login.defs. Solo l'utente root può aggiungere, modificare o eliminare account utente e gruppo.

File di configurazione di utenti e gruppi

/etc/passwd

Quando viene aggiunto un nuovo utente, le informazioni vengono memorizzate come una singola riga separata da due punti in /etc/passwd. Ecco un esempio di una voce in questo file:

# tail -1 /etc/passwd
test:x:1001:1001:test user:/home/test:/bin/bash

Quanto segue descrive questa voce:

Campo Descrizione
prova Nome utente
x Indica che vengono utilizzate password shadow
1001 UID, iniziano con 1000 e aumentano di 1 per ogni nuovo utente aggiunto. Gli UID inferiori a 1000 sono riservati per l'uso del sistema.
1001 GID del gruppo principale dell'utente. Questi iniziano con 1000 e aumentano di 1 per ogni nuovo gruppo. Gli utenti possono appartenere a più di un gruppo.
utente di prova Informazioni GECOS (General Electric Comprehensive Operating System), utilizzate solo a scopo informativo come il nome completo
/home/test Home directory per questo utente
/bin/bash Shell predefinita per questo utente

/etc/shadow

Con le password shadow, una nuova voce viene aggiunta automaticamente a /etc/shadow quando viene creato un nuovo utente. Questo file può essere visualizzato solo da root. Ecco un esempio di una voce in questo file:

# tail -1 /etc/shadow
test:$6$XBCDBQ...:17610:0:99999:7:::

Quanto segue descrive questa voce:

Campo Descrizione
prova Nome utente
$6$XBCDBQ... Valore della password con hash (visualizzato il valore parziale). La stessa password in testo normale non è memorizzata sul disco. Un algoritmo crea una stringa univoca da una password.
17610 Numero di giorni dalla modifica della password (contati in giorni dal 1 gennaio 1970).
0 Numero di giorni che devono trascorrere prima che la password venga modificata dall'utente.
99999 Numero massimo di giorni dalla modifica della password durante i quali la password può essere utilizzata. Dopo questo numero di giorni, la password deve essere modificata dall'utente.
7 Numero di giorni prima della data di scadenza in cui l'utente viene avvisato della politica di modifica della password in sospeso. Se la password non viene modificata dopo questo numero di giorni, l'account utente è bloccato.

Il campo successivo è vuoto ma viene utilizzato per memorizzare l'ultima data di blocco dell'account (contata in giorni dal 1 gennaio 1970). Anche l'ultimo campo è vuoto ma non viene utilizzato.

/etc/gruppo

Poiché Oracle Linux utilizza uno schema UPG, una nuova voce viene creata automaticamente in /etc/group quando viene aggiunto un nuovo utente. Il nome del gruppo è lo stesso del nome utente. Ecco un esempio di una voce in questo file:

# tail -1 /etc/group
test:x:1000:test

Quanto segue descrive questa voce:

Campo Descrizione
prova Nome gruppo
x Indica che vengono utilizzate password shadow
1000 GID
prova Elenco degli utenti che sono membri del gruppo

Ogni gruppo può avere più utenti. Gli utenti possono anche appartenere a più di un gruppo. Il GID memorizzato nella voce dell'utente in /etc/passwd è il gruppo principale dell'utente.

/etc/gshadow

Le password di gruppo con hash sono archiviate in questo file. Tuttavia, le password di gruppo vengono utilizzate raramente. Ecco un esempio di una voce in questo file:

# tail -1 /etc/gshadow 
test:!!::test

Quanto segue descrive questa voce:

Campo Descrizione
prova Nome gruppo
x Password con hash. Il !! Indica che l'account è bloccato.
oracolo Elenco degli utenti che sono membri del gruppo

Gli ultimi due campi vengono utilizzati per designare amministratori e membri.

Aggiunta di un account utente

aggiunta utente

Utilizzare il comando useradd per aggiungere un account utente. La sintassi è:

# useradd [options] user_name

Quando si crea un nuovo utente senza alcuna opzione, vengono applicate le impostazioni predefinite. Esempio:

# useradd john
# tail -1 /etc/passwd
john:x:501:501::/home/john:/bin/bash

Inoltre, per impostazione predefinita, useradd crea un account utente bloccato. Per sbloccare l'account e assegnare una password, eseguire il comando passwd user_name come root. Esempio:

# passwd john

Il comando passwd user_name richiede una nuova password. A seconda della complessità della password, potresti ricevere una notifica che la password è errata (troppo breve o troppo semplice). Reinserire la stessa password per continuare e sbloccare l'account utente. Lo stesso comando passwd viene utilizzato per modificare una password. L'utente root può sempre modificare la password di un utente. Agli utenti viene richiesto di inserire prima la password corrente.

Impostazioni predefinite

Le impostazioni predefinite per un nuovo utente possono essere visualizzate e modificate utilizzando l'opzione -D. Esempio:

# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

Il INATTIVO La direttiva imposta il numero di giorni dopo la scadenza di una password fino al blocco dell'account. Il valore 0 blocca l'account non appena la password scade. Un valore di -1 disabilita la funzione. Contenuti di SKEL (/etc/skel per impostazione predefinita) vengono copiati nella home directory di un nuovo utente quando viene creato l'account utente. Le impostazioni predefinite sono memorizzate in /etc/default/useradd . Le seguenti opzioni, utilizzate con –D, modificano le impostazioni predefinite del comando useradd:

  • -b default_home :il prefisso del percorso iniziale per la directory home di un nuovo utente
  • -e data_scaduta_predefinita :la data in cui l'account utente è disabilitato
  • -f default_inactive :il numero di giorni dopo la scadenza di una password prima che l'account venga bloccato
  • -g gruppo_predefinito :il nome o l'ID del gruppo per il gruppo iniziale di un nuovo utente
  • -s default_shell :la shell di accesso del nuovo utente

Ad esempio, per modificare la shell di accesso di un nuovo utente nella shell Bourne, inserisci quanto segue:

# useradd –D –s /bin/sh user_name

Opzioni aggiungi utente

Sono disponibili diverse opzioni per il comando useradd per sovrascrivere le impostazioni predefinite. Di seguito sono elencate alcune delle opzioni più comunemente utilizzate:

  • -c commento :le informazioni GECOS del nuovo utente, come il nome completo
  • -d home_dir :il prefisso del percorso iniziale per la directory home di un nuovo utente
  • -e scadenza_data :la data (formato AAAA-MM-GG) in cui l'account utente è disabilitato
  • -g gruppo_iniziale :il nome del gruppo o il numero del gruppo di accesso iniziale dell'utente. Il nome del gruppo deve esistere. Un numero di gruppo deve fare riferimento a un gruppo già esistente.
  • -Gruppo G :un elenco di gruppi secondari di cui l'utente è anche membro. Ogni gruppo è separato dal successivo da una virgola, senza spazi bianchi intermedi.
  • -p passwd :Imposta la password del nuovo utente.
  • -s shell :il nome della shell di accesso dell'utente

Ad esempio, per creare un nuovo nome utente di "john" e includere il nome dell'utente e modificare la shell di accesso nella shell C, inserisci quanto segue:

# useradd –c "John Smith" –s /bin/csh john

Shell di accesso

Quando aggiungi un nuovo account utente, all'utente viene concesso l'accesso alla shell per impostazione predefinita. È possibile creare un account utente con shell nologin per l'esecuzione di un servizio come SMTP, FTP o per l'esecuzione di un server Web, ad esempio. Un utente senza una shell di accesso non può accedere a un sistema e, pertanto, non può eseguire alcun comando in modo interattivo sul sistema. Tuttavia, i processi possono essere eseguiti come quell'utente.

L'accesso come utente con una shell nologin viene gentilmente rifiutato e viene visualizzato un messaggio che informa che l'account non è disponibile. Se il file /etc/nologin.txt esiste, nologin mostra il contenuto del file anziché il messaggio predefinito. Per creare un utente nologin, assicurati innanzitutto che nologin esista in /etc/shells file:

# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash

Per aggiungere un nuovo utente chiamato test senza accesso alla shell:

# useradd -s /sbin/nologin test

Tentativo di accesso mentre viene visualizzato il test utente:

# su – test
This account is currently not available.

Modifica o eliminazione degli account utente

modutente

Utilizzare il comando usermod per modificare un account utente esistente. La sintassi è:

# usermod [options] user_name

Uno degli usi più comuni del comando usermod è aggiungere un utente a un altro gruppo (secondario). Usa –a e –G opzioni seguite da un elenco separato da virgole dei gruppi secondari a cui aggiungere l'utente. L'esempio seguente elenca il contenuto di /etc/group prima e dopo aver modificato un utente e averlo aggiunto a un gruppo secondario:

# grep 1017 /etc/group 
students:x:1017:
# usermod –aG 1017 mary 
# grep 1017 /etc/group students:x:1017:mary

utentedel

Utilizzare il comando userdel per eliminare un account utente. Esempio:

# userdel john

Amministrazione account di gruppo

aggiungere gruppo

Utilizzare il comando groupadd per aggiungere un account di gruppo. La sintassi è:

# groupadd [options] group_name

mod di gruppo

Utilizzare il comando groupmod per modificare un account di gruppo. La sintassi è:

# groupmod [options] group_name

Gruppo

Utilizzare il comando groupdel per eliminare un account di gruppo. La sintassi è:

# groupdel group_name

Puoi rimuovere i gruppi anche se ci sono membri nel gruppo. Non è possibile rimuovere il gruppo principale di alcun utente esistente. Devi rimuovere l'utente prima di rimuovere il gruppo.

gpasswd

Utilizzare il comando gpasswd per amministrare /etc/group e /etc/gshadow. Ogni gruppo può avere amministratori, membri e una password. La sintassi è:

# gpasswd [options] group_name

gruppi

Il comando gruppi mostra i gruppi a cui appartiene un utente. L'esempio seguente illustra che l'utente oracle appartiene a due gruppi, oracle (gruppo principale) e studenti (gruppo secondario):

$ grep oracle /etc/passwd
oracle:x:1000:1000:Oracle Student:/home/oracle/bin/bash
$ grep oracle /etc/group
oracle:x:1000: students:x:1056:student1,student2,oracle

Il comando groups (registrato come Oracle) verifica queste appartenenze ai gruppi.

$ whoami
oracle
$ groups 
oracle students

nuovogrp

Il comando newgrp esegue una nuova shell e cambia l'identificazione del gruppo reale di un utente. L'esempio seguente illustra l'ID del gruppo prima e dopo l'esecuzione del comando. Illustra anche che viene eseguita una nuova shell.

$ id
uid=1000(oracle) gid=1000(oracle)
groups=1000(oracle),1066(students)... 

Nota che il gid è uguale a 1000(oracolo).

$ ps
PID TTY TIME CMD
20279 pts/0 00:00:00 bash 
20411 pts/0 00:00:00 ps
$ newgrp students
$ id
uid=1000(oracle) gid=1066(students)
groups=1000(oracle),1066(students)...

Nota che il gid ora è uguale a 1066 (studenti). Nota anche che è stata eseguita una nuova shell:

$ ps
PID TTY TIME CMD
20279 pts/0 00:00:00 bash
20464 pts/0 00:00:00 bash
20486 pts/0 00:00:00 ps

Il comando newgrp non riconosce i numeri ID del gruppo e puoi solo cambiare il nome del tuo gruppo reale in un gruppo di cui sei membro. L'esecuzione del comando senza un argomento imposta l'identificazione del gruppo reale sul gruppo principale dell'utente.

Configurazione password

L'invecchiamento della password richiede agli utenti di modificare periodicamente la propria password. Utilizzare il comando chage per configurare la scadenza della password. La sintassi è:

# chage [options] user_name

Immettere il comando chage, seguito da un nome utente, per visualizzare i valori di aging delle password esistenti e apportare modifiche. Ad esempio, per visualizzare e modificare i valori per l'utente john, digitare (come utente root):

# chage john
Changing the aging information for john
Enter the new value, or press ENTER for the default

	Minimum Password Age [0]: 
	Maximum Password Age [99999]: 
	Last Password Change (YYYY-MM-DD) [2018-03-24]: 
	Password Expiration Warning [7]: 
	Password Inactive [-1]: 
	Account Expiration Date (YYYY-MM-DD) [-1]: 

Le informazioni sull'invecchiamento della password sono memorizzate nel file /etc/shadow. Per visualizzare la voce dell'utente john prima di apportare modifiche:

# grep john /etc/shadow
john:$6$fJB4dWkt$...:17614:0:99999:7:::

La modifica del valore dell'età minima della password su 14 e del valore dell'età massima della password su 30 significa che in 14 giorni l'utente ha 30 giorni per modificare la password. La nuova voce appare come:

# grep john /etc/shadow
john:$6$fJB4dWkt$...:17614:14:30:7:::

Sulla base di queste informazioni, l'utente viene avvisato di modificare la propria password sette giorni prima della data di scadenza della password. La direttiva INACTIVE viene utilizzata per impostare il numero di giorni di inattività dopo la scadenza di una password prima che l'account utente venga bloccato. L'impostazione INACTIVE su -1 disabilita questa funzione.

Opzioni di modifica

Sono disponibili diverse opzioni per il comando chage. Per elencare le informazioni sull'invecchiamento:

# chage -l john
Last password change					: Mar 24, 2018
Password expires					: never
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

Per forzare un utente a impostare immediatamente una nuova password (forza la scadenza immediata), imposta il valore dell'ultima modifica della password su 0. Esempio:

# chage –d 0 john

Dopo l'accesso, all'utente viene richiesto di modificare la propria password.

authconfig

Anche l'algoritmo di hashing della password dell'utente Linux è configurabile. Utilizzare il comando authconfig per determinare l'algoritmo corrente in uso o per impostarlo su qualcosa di diverso. Per determinare l'algoritmo corrente:

# authconfig --test | grep hashing
    password hashing algorithm is sha512

Per modificare l'algoritmo, usa il –passalgo opzione con uno dei seguenti come parametro:decrittografa , bigcrypt , md5 , sha256 o sha512 , seguito dall'–aggiornamento opzione. Ad esempio, per modificare l'algoritmo in MD5:

# authconfig --passalgo=md5 --update
CentOS / RHEL:gestione dell'invecchiamento delle password per gli utenti che utilizzano chage (con esempi pratici)
Comprensione del file /etc/login.defs


Linux
  1. Una guida al terminale Linux per principianti

  2. 10 tutorial sui comandi Linux per principianti ed esperti

  3. Come aggiungere un utente a un gruppo in Linux

  4. Come creare ed eliminare un gruppo di utenti in Linux

  5. Gestisci i gruppi di utenti Linux

Una guida per principianti alla gestione degli utenti su desktop e server Ubuntu

Guida completa all'amministrazione degli utenti su Linux

Configurazione e guida del bootloader Linux LILO

Come aggiungere un utente al gruppo su Linux

Guida per principianti alla gestione degli utenti MySQL

Come aggiungere un utente a un gruppo Linux