English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il sistema operativo Linux è un sistema operativo a più utenti e a più compiti di tipo timesharing, e qualsiasi utente che desidera utilizzare le risorse del sistema deve prima chiedere un account all'amministratore di sistema e poi accedere al sistema con questo account.
L'account utente può aiutare l'amministratore di sistema a monitorare gli utenti che utilizzano il sistema e controllare l'accesso ai risorse del sistema; allo stesso tempo, può anche aiutare gli utenti a organizzare i file e fornire protezione della sicurezza.
Ogni account utente ha un nome utente unico e una password personale.
Dopo aver inserito il nome utente e la password corretti durante il login, l'utente può accedere al sistema e alla sua directory principale.
Per implementare la gestione degli account utente, è necessario completare i seguenti compiti principali:
Aggiunta, rimozione e modifica degli account utente.
Gestione delle password utente.
Gestione dei gruppi utente.
La gestione degli account utente riguarda principalmente l'aggiunta, la modifica e la rimozione degli account utente.
Aggiungere un account utente significa creare un nuovo account nel sistema e assegnare risorse come il numero utente, il gruppo utente, la directory principale e lo Shell di login. Gli account appena aggiunti sono bloccati e non possono essere utilizzati.
useradd opzione nome utente
Spiegazione dei parametri:
Opzioni:
-c commento Specificare una descrizione descrittiva.
-d directory Specificare la directory principale dell'utente, se questa directory non esiste, utilizzare anche l'opzione -m per creare la directory principale.
-g gruppo utente Specificare il gruppo utente di appartenenza dell'utente.
-G gruppo, gruppo utente Specificare i gruppi aggiuntivi di appartenenza dell'utente.
-s file Shell Specificare il file Shell di login dell'utente.
-u numero utente Specificare il numero utente dell'utente, se è presente anche l'opzione -o, può essere utilizzato il numero identificativo di altri utenti.
Nome utente:
Specificare il nome utente del nuovo account.
# useradd –d /home/sam -m sam
Questo comando ha creato un utente sam, tra cui le opzioni -d e -m vengono utilizzate per generare una directory principale per il nome utente sam /home/sam(/home è il percorso del padre della directory principale utente predefinita).
# useradd -s /bin/sh -g group –G adm,root gem
Questo comando ha creato un utente gem, che ha lo Shell di login /bin/sh, appartiene al gruppo utente group, e anche ai gruppi utente adm e root, dove il gruppo utente group è il gruppo principale.
Ecco come potrebbe essere creato un nuovo gruppo: #groupadd group e groupadd adm
Aggiungere un account utente significa aggiungere una registrazione per il nuovo utente nel file /etc/passwd e aggiornare altri file di sistema come /etc/shadow, /etc/group, ecc.
Linux fornisce lo strumento di gestione del sistema integrato userconf, che può essere utilizzato per gestire gli account utente in modo uniforme.
Se un account utente non viene più utilizzato, può essere eliminato dal sistema. Eliminare l'account utente significa eliminare la registrazione dell'utente nei file di sistema come /etc/passwd e altri, e Necessarymente anche la directory principale dell'utente.
Eliminare un account utente esistente utilizzando il comando userdel, il formato è il seguente:
userdel opzione nome utente
Le opzioni comuni sono -r, che ha il ruolo di eliminare anche la directory principale dell'utente.
Ad esempio:
# userdel -r sam
Questo comando elimina la registrazione dell'utente sam nei file di sistema (principalmente /etc/passwd, /etc/shadow, /etc/group, ecc.) e elimina anche la directory principale dell'utente.
Modificare l'account utente significa modificare le proprietà correlate dell'utente in base alla situazione reale, come il numero utente, la directory principale, il gruppo utente, lo Shell di login, ecc.
Modificare le informazioni degli utenti esistenti utilizzando il comando usermod, il formato è il seguente:
usermod opzione nomeutente
Le opzioni comuni includono -c, -d, -m, -g, -G, -s, -u e -o, tra le quali il significato è lo stesso dell'opzione del comando useradd, può specificare nuovi valori di risorse per l'utente.
Inoltre, alcuni sistemi possono utilizzare l'opzione: -l nuovo nome utente
Questa opzione specifica un nuovo account, ovvero cambia il nome utente originale in un nuovo nome utente.
Ad esempio:
# usermod -s /bin/ksh -d /home/z –g developer sam
Questa comando modifica il login Shell dell'utente sam in ksh, il percorso principale diventa /home/z, il gruppo diventa developer.
Una parte importante della gestione degli utenti è la gestione delle password degli utenti. Quando viene creato un account utente, non c'è una password, ma è bloccato dal sistema e non può essere utilizzato. È necessario specificare una password per poter essere utilizzato, anche se è una password vuota.
Il comando Shell utilizzato per specificare e modificare le password degli utenti è passwd. Il superutente può specificare le password per sé stesso e altri utenti, mentre l'utente comune può solo usarlo per modificare la propria password. La forma del comando è:
passwd opzione nomeutente
Opzioni disponibili:
-l Blocca la password, ovvero disabilita l'account.
-u sblocca la password.
-d Rende l'account senza password.
-f Obbliga l'utente a modificare la password la prossima volta che accede.
Se non viene specificato il nome utente predefinito, viene modificata la password dell'utente corrente.
Ad esempio, supponiamo che l'utente corrente sia sam, quindi il seguente comando modifica la password dell'utente sam:
$ passwd Vecchia password:****** Nuova password:******* Riinserisci la nuova password:*******
Se si è il superutente, è possibile specificare la password di qualsiasi utente con la seguente forma:
# passwd sam Nuova password:******* Riinserisci la nuova password:*******
Quando un utente comune modifica la propria password, il comando passwd chiede prima la password originale per verificare, poi richiede all'utente di inserire due volte la nuova password; se le due password inserite sono le stesse, questa password viene assegnata all'utente; mentre il superutente, quando assegna una password agli utenti, non deve sapere la password originale.
Per motivi di sicurezza del sistema, l'utente dovrebbe scegliere una password complessa, ad esempio meglio utilizzare una password di lunghezza di 8 caratteri, che contenga lettere maiuscole, minuscole e numeri, e dovrebbe essere diversa dal nome, dalla data di nascita e così via.
Quando si specifica una password vuota per un utente, eseguire il comando nella seguente forma:
# passwd -d sam
Questa comando elimina la password dell'utente sam, quindi il sistema non permetterà all'utente sam di accedere la prossima volta che si connette.
Il comando passwd può anche essere utilizzato con l'opzione -l (blocco) per bloccare un utente specifico, impedendogli di accedere, ad esempio:
# passwd -l sam
Ogni utente ha un gruppo utente, il sistema può gestire tutti gli utenti di un gruppo utente in modo centralizzato. I sistemi Linux differiscono nell'indicazione dei gruppi utente, come nel Linux, l'utente appartiene al gruppo utente con lo stesso nome, che viene creato contemporaneamente al creazione dell'utente.
La gestione del gruppo utente coinvolge l'aggiunta, la rimozione e la modifica dei gruppi utente. L'aggiunta, la rimozione e la modifica dei gruppi in realtà sono aggiornamenti del file /etc/group.
groupadd opzione gruppo utente
Opzioni disponibili includono:
-g GID specifica l'ID identificativo del gruppo (GID) del nuovo gruppo utente.
-o di solito viene utilizzato insieme all'opzione -g, significa che il GID del nuovo gruppo utente può essere lo stesso del GID di un altro gruppo utente esistente nel sistema.
# groupadd group1
Questo comando aggiunge un nuovo gruppo group1 al sistema, l'ID identificativo del nuovo gruppo è 1 più grande dell'ID identificativo del gruppo più grande esistente.
# groupadd –g 101 group2
Questo comando aggiunge un nuovo gruppo group2 al sistema, contemporaneamente specificando che l'ID identificativo del gruppo è 101.
groupdel gruppo utente
# groupdel group1
Questo comando elimina il gruppo group1 dal sistema.
groupmod opzione gruppo utente
Opzioni comuni includono:
-g GID assegna un nuovo ID identificativo di gruppo al gruppo utente.
-o può essere utilizzato insieme all'opzione -g, il nuovo GID del gruppo utente può essere lo stesso del GID di un altro gruppo utente esistente nel sistema.
-n nuovo gruppo utente cambia il nome del gruppo utente in un nuovo nome
# groupmod –g 102 group2
Questo comando cambia l'ID identificativo del gruppo group2 in 102.
# groupmod –g 10000 –n group3 group2
Questo comando cambia l'ID identificativo del gruppo group2 in 10000 e modifica il nome del gruppo in group3.
L'utente può utilizzare il comando newgrp per passare a un altro gruppo utente dopo il login, il parametro del comando è il gruppo utente di destinazione. Ad esempio:
$ newgrp root
Questo comando cambia l'utente corrente al gruppo di utenti root, a condizione che il gruppo di utenti root sia il gruppo principale o aggiuntivo dell'utente. Allo stesso modo della gestione dell'account utente, la gestione del gruppo utente può essere completata tramite gli strumenti di gestione del sistema integrati.
Ci sono molte modalità per completare il lavoro di gestione degli utenti, ma in effetti, ogni metodo modifica i file di sistema pertinenti.
Le informazioni relative agli utenti e ai gruppi utente sono memorizzate in alcuni file di sistema, tra cui /etc/passwd, /etc/shadow, /etc/group.
Di seguito, esamineremo il contenuto di questi file.
Ogni utente del sistema Linux ha una riga corrispondente nel file /etc/passwd, che registra alcune proprietà di base dell'utente.
Questo file è leggibile da tutti gli utenti. Il suo contenuto è simile al seguente esempio:
# cat /etc/passwd root:x:0:0:Superutente:/: daemon:x:1:1:Demone di sistema:/etc: bin:x:2:2:Proprietario dei comandi di sistema:/bin: sys:x:3:3:Proprietario dei file di sistema:/usr/sys: adm:x:4:4:Contabilità di sistema:/usr/adm: uucp:x:5:5:Amministratore UUCP:/usr/lib/uucp: auth:x:7:21:Amministratore di autenticazione:/tcb/files/auth: cron:x:9:16:Demone Cron:/usr/spool/cron: listen:x:37:4:Demone di rete:/usr/net/nls: lp:x:71:18:Amministratore stampante:/usr/spool/lp: sam:x:200:50:Sam san:/home/sam:/bin/sh
Dall'esempio sopra, possiamo vedere che ogni riga di /etc/passwd corrisponde a un utente, ogni riga è separata da due punti (:) in 7 campi, il formato e il significato specifici sono come segue:
Nome utente:parola d'ordine:identificatore utente:identificatore gruppo:descrizione commento:directory principale:Shell di login
Di solito non supera i 8 caratteri e è composto da lettere maiuscole e/ou minuscole e/ou numeri. Il nome utente non può contenere due punti (:) perché qui sono i separatori.
Per la compatibilità, è meglio che il nome utente non contenga il carattere punto (.) e non utilizzi trattini (-) e plus (+) all'inizio.
Anche se questo campo contiene solo la stringa di crittografia della password dell'utente, non il testo chiaro, poiché il file /etc/passwd è leggibile da tutti gli utenti, quindi è una potenziale sicurezza. Pertanto, molti sistemi Linux (come SVR4) utilizzano la tecnologia shadow, archiviando la password crittografata effettiva nel file /etc/shadow, e nel campo delle password del file /etc/passwd viene memorizzato un carattere speciale, ad esempio "x" o "*".
Di solito è corrispondente al nome utente. Se diversi nomi utente corrispondono allo stesso numero di identificatore utente, il sistema interno li considera come lo stesso utente, ma possono avere diverse password, diverse directory principali e diversi Shell di login.
Di solito, l'intervallo di valori del numero di identificatore dell'utente è 0-65 535. 0 è l'identificatore dell'utente superuser root, 1-99 sono riservati dal sistema come account di gestione, e l'identificatore dell'utente comune parte da 100. Nel sistema Linux, questo limite è 500.
Corrisponde a una registrazione nel file /etc/group.
Ad esempio, il nome reale dell'utente, il numero di telefono, l'indirizzo e così via, questo campo non ha alcun uso pratico. Nei diversi sistemi Linux, il formato di questo campo non è uniforme. In molti sistemi Linux, questo campo contiene un testo descrittivo casuale, utilizzato come output del comando finger.
È la directory in cui si trova l'utente dopo aver effettuato il login nel sistema. Nella maggior parte dei sistemi, le directory principali degli utenti sono organizzate nella stessa directory specifica, e il nome della directory principale dell'utente è il nome di login dell'utente. Gli utenti hanno i permessi di lettura, scrittura ed esecuzione (ricerca) per la loro directory principale, mentre l'accesso degli altri utenti a questa directory è configurato in base alla具体情况.
Shell è l'interfaccia tra l'utente e il sistema Linux. Shell di Linux sono molte, ognuna con caratteristiche diverse. Tra i più comuni ci sono sh (Bourne Shell), csh (C Shell), ksh (Korn Shell), tcsh (TENEX/TOPS-20 type C Shell), bash (Bourne Again Shell) e così via.
L'amministratore di sistema può assegnare una shell specifica agli utenti in base alla situazione del sistema e alle abitudini degli utenti. Se non viene specificata la shell, il sistema utilizza sh come shell di login predefinita, ovvero il valore di questo campo è /bin/sh
La shell di login dell'utente può anche essere specificata come un programma specifico (questo programma non è un interprete di comando)
Utilizzando questa caratteristica, possiamo limitare l'utente a eseguire solo applicazioni specifiche, e l'utente viene automaticamente disconnesso dal sistema alla fine dell'esecuzione dell'applicazione. Alcuni sistemi Linux richiedono che solo i programmi registrati nel sistema possano apparire in questo campo
Questi utenti hanno anche una registrazione nel file /etc/passwd, ma non possono accedere perché la loro shell di login è vuota. La loro esistenza è principalmente per facilitare la gestione del sistema e soddisfare i requisiti dei processi di sistema per il proprietario del file
Gli utenti pseudo comuni sono elencati di seguito:
Significato degli utenti pseudo bin Ha i file di comandi eseguibili dell'utente sys Ha i file di sistema adm Ha i file di account uucp Utilizzato da UUCP lp Utilizzato dal sottosistema lp o lpd nobody Utilizzato da NFS
1) Oltre agli utenti pseudoelencati sopra, ci sono molti utenti standard pseudo, come ad esempio: audit, cron, mail, usenet, che sono necessari per i relativi processi e file
Poiché il file /etc/passwd è leggibile da tutti gli utenti, se la password dell'utente è troppo semplice o se la sequenza è chiaramente evidente, un computer comune può facilmente decifrare la password. Pertanto, i sistemi Linux che richiedono un'alta sicurezza separano la versione criptata della password e la conservano in un file separato, che è il file /etc/shadow Solo gli utenti superuser possono leggere il file, il che garantisce la sicurezza delle password degli utenti
2) La riga dei record in /etc/shadow corrisponde alla riga in /etc/passwd, viene generata automaticamente dal comando pwconv in base ai dati di /etc/passwd
Il formato del file è simile a /etc/passwd, composto da vari campi, separati da ":". Questi campi sono:
Nome utente: password criptata: ultima modifica: intervallo minimo: intervallo massimo: tempo di avviso: tempo inattivo: data di scadenza: flag
"Nome utente" è identico al nome utente nel file /etc/passwd
"口令" campo contiene la versione criptata della password dell'utente, lunga 13 caratteri. Se è vuoto, corrisponde a un utente senza password, non è necessario inserire la password durante il login; se contiene caratteri che non appartengono alla集合 { ./0-9A-Za-z }, l'utente non può accedere.
Il campo "Ultima modifica" indica il numero di giorni dal momento in cui l'utente ha modificato l'ultima password. Il punto di partenza può variare da sistema a sistema. Ad esempio, in SCO Linux, il punto di partenza è il 1 gennaio 1970.
Il campo "Minimo intervallo di tempo" indica il numero minimo di giorni richiesti tra due modifiche della password.
Il campo "Massimo intervallo di tempo" indica il numero massimo di giorni per cui la password rimane valida.
Il campo "Tempo di avviso" indica il numero di giorni tra il momento in cui il sistema avvisa l'utente e la scadenza ufficiale della password.
Il campo "Tempo di inattività" indica il numero massimo di giorni per cui l'utente non ha avuto attività di login ma l'account rimane valido.
Il campo "Data di scadenza" indica un numero di giorni assoluti, se utilizzato, indica la durata di vita dell'account corrispondente. Alla scadenza, l'account non è più valido e non può essere utilizzato per il login.
Di seguito è riportato un esempio di /etc/shadow:
# cat /etc/shadow root:Dnakfw28zf38w:8764:0:168:7::: daemon:*::0:0:::: bin:*::0:0:::: sys:*::0:0:::: adm:*::0:0:::: uucp:*::0:0:::: nuucp:*::0:0:::: auth:*::0:0:::: cron:*::0:0:::: listen:*::0:0:::: lp:*::0:0:::: sam:EkdiSECLWPdSa:9740:0:0::::
Il raggruppamento degli utenti è uno strumento di gestione degli utenti e di controllo degli accessi nel sistema Linux.
Ogni utente appartiene a un gruppo utente; un gruppo può avere più utenti, e un utente può appartenere a più gruppi.
Quando un utente è membro di più gruppi, il gruppo principale registrato nel file /etc/passwd è il gruppo di default al momento del login, mentre gli altri gruppi sono chiamati gruppi aggiuntivi.
Quando un utente deve accedere ai file di un gruppo aggiuntivo, deve prima utilizzare il comando newgrp per diventare membro del gruppo da accedere.
Tutte le informazioni sui gruppi utente sono memorizzate nel file /etc/group. Il formato di questo file è simile a quello del file /etc/passwd, separato da due punti (:), e i campi sono i seguenti:
Nome del gruppo: password: ID del gruppo: elenco degli utenti del gruppo
"Nome del gruppo" è il nome del gruppo utente, composto da lettere o numeri. Come il nome di accesso in /etc/passwd, il nome del gruppo non dovrebbe essere ripetuto.
"Password" campo contiene la parola chiave criptata dell'utente del gruppo. Di solito, i gruppi di utenti del sistema Linux non hanno password, quindi questo campo è generalmente vuoto o è *.
"ID del gruppo" è simile all'ID utente, è un intero utilizzato dal sistema interno per identificare il gruppo.
"Lista utenti del gruppo" è la lista di tutti gli utenti di questo gruppo /b],e gli utenti sono separati da virgole (,). Questo gruppo utente può essere il gruppo principale dell'utente o un gruppo aggiuntivo.
Ecco un esempio reale del file /etc/group:
root::0:root bin::2:root,bin sys::3:root,uucp adm::4:root,adm daemon::5:root,daemon lp::7:root,lp users::20:root,sam
Aggiungere e rimuovere utenti è un compito semplice per ogni amministratore di sistema Linux, ma può diventare complicato quando devi aggiungere decine, centinaia o persino migliaia di utenti. Non è probabile che tu debba usare useradd per aggiungere uno per uno, quindi è necessario trovare un metodo semplice per creare un gran numero di utenti. Il sistema Linux offre strumenti per creare utenti in massa, che ti permettono di creare immediatamente un gran numero di utenti, come segue:
Ogni colonna deve essere scritta secondo il formato del file di password /etc/passwd. Devi notare che il nome utente, l'UID e la directory utente di ogni utente non possono essere uguali, mentre la sezione della password può essere lasciata vuota o inserire il numero x. Ecco un esempio di contenuto del file user.txt:
user001::600:100:user:/home/user001:/bin/bash user002::601:100:user:/home/user002:/bin/bash user003::602:100:user:/home/user003:/bin/bash user004::603:100:user:/home/user004:/bin/bash user005::604:100:user:/home/user005:/bin/bash user006::605:100:user:/home/user006:/bin/bash
# newusers < user.txt
Poi puoi eseguire il comando vipw o vi /etc/passwd per verificare se il file /etc/passwd contiene già i dati degli utenti e se sono stati creati i directory utente.
Decodifica le password shadow generate da /etc/shadow, quindi scrivile indietro in /etc/passwd e elimina la colonna delle password shadow di /etc/shadow. Questo è per facilitare il lavoro di conversione delle password successivo, ossia disabilitare la funzione shadow password.
# pwunconv
Il formato è:
Nome utente:Password
Il contenuto dell'esempio del file passwd.txt è il seguente:
user001:123456 user002:123456 user003:123456 user004:123456 user005:123456 user006:123456
Crea la password dell'utente, chpasswd scriverà la password codificata tramite il comando /usr/bin/passwd nella colonna delle password di /etc/passwd.
# chpasswd < passwd.txt
Esegui il comando /usr/sbin/pwconv per codificare le password come password shadow e scrivere i risultati in /etc/shadow.
# pwconv
Così è stato completato la creazione di un gran numero di utenti, dopo di che puoi controllare i permessi delle directory degli utenti宿 in /home per vedere se sono impostati correttamente e accedere per verificare se la password degli utenti è corretta.