Lo scorso agosto, la Linux Foundation ha avviato il LFCS certificazione (Amministratore di sistema certificato Linux Foundation), un nuovissimo programma il cui scopo è quello di consentire alle persone ovunque e ovunque di sostenere un esame per ottenere la certificazione di base per supporto operativo intermedio per i sistemi Linux, che include il supporto di sistemi e servizi in esecuzione, insieme al monitoraggio generale e analisi, oltre a un processo decisionale intelligente per poter decidere quando è necessario inoltrare i problemi a team di supporto di livello superiore.
Si prega di dare una rapida occhiata al seguente video che descrive un'introduzione al Linux Foundation Certification Program.
Questo articolo è la parte 8 di una lunga serie di 10 tutorial, qui in questa sezione ti guideremo su come gestire le autorizzazioni di utenti e gruppi nel sistema Linux, necessarie per l'esame di certificazione LFCS.
Poiché Linux è un sistema operativo multiutente (in quanto consente a più utenti su computer o terminali diversi di accedere a un singolo sistema), sarà necessario sapere come eseguire un'efficace gestione degli utenti: come aggiungere, modificare, sospendere o eliminare gli account utente, oltre a concedere loro le autorizzazioni necessarie per svolgere le attività loro assegnate compiti.
Per aggiungere un nuovo account utente, puoi eseguire uno dei seguenti due comandi come root.
# adduser [nuovo_account] # useradd [nuovo_account]
Quando un nuovo account utente viene aggiunto al sistema, vengono eseguite le seguenti operazioni.
1. Viene creata la sua directory home (/home/username per impostazione predefinita).
2. I seguenti file nascosti vengono copiati nella directory home dell'utente e verranno utilizzati per fornire le variabili di ambiente per la sua sessione utente.
.bash_logout. .bash_profile. .bashrc.
3. Viene creato uno spool di posta per l'utente in /var/spool/mail/nome utente.
4. Viene creato un gruppo a cui viene assegnato lo stesso nome del nuovo account utente.
Le informazioni complete sull'account sono memorizzate nel /etc/passwd file. Questo file contiene un record per account utente di sistema e ha il seguente formato (i campi sono delimitati da due punti).
[nome utente]:[x]:[UID]:[GID]:[Commento]:[Directory principale]:[Shell predefinita]
Le informazioni sul gruppo sono memorizzate nel /etc/group file. Ogni record ha il seguente formato.
[Nome gruppo]:[Password gruppo]:[GID]:[Membri gruppo]
Dopo aver aggiunto un account, puoi modificare le seguenti informazioni (per nominare alcuni campi) utilizzando il pulsante usermod comando, la cui sintassi di base di usermod è la seguente.
# usermod [opzioni] [nome utente]
Usa il -data di scadenza bandiera seguita da una data in AAAA-MM-GG formato.
# usermod --expiredate 2014-10-30 tecmint.
Usa il combinato -aG, o -aggiungere–gruppi opzioni, seguito da un elenco di gruppi separati da virgole.
# usermod --append --groups root, utenti tecmint.
Usa il -D, o -casa opzioni, seguito dal percorso assoluto della nuova directory home.
# usermod --home /tmp tecmint.
Utilizzo -conchiglia, seguito dal percorso della nuova shell.
# usermod --shell /bin/sh tecmint.
# gruppi tecmint. # id tecmint.
Ora eseguiamo tutti i comandi di cui sopra in una volta sola.
# usermod --expiredate 2014-10-30 --append --groups root, utenti --home /tmp --shell /bin/sh tecmint.
Nell'esempio sopra, imposteremo la data di scadenza del tecnica account utente per 30 ottobre 2014. Aggiungeremo anche l'account al radice e gruppo di utenti. Infine, imposteremo SH
come shell predefinita e cambia la posizione della directory home in /tmp:
Leggi anche:
Per gli account esistenti, possiamo anche fare quanto segue.
Usa il -L (L maiuscola) o il -serratura opzione per bloccare la password di un utente.
# usermod --lock tecmint.
Usa il –u o il -sbloccare opzione per sbloccare la password di un utente che era stata precedentemente bloccata.
# usermod --unlock tecmint.
Esegui la seguente serie di comandi per raggiungere l'obiettivo.
# groupadd common_group # Aggiunge un nuovo gruppo. # chown :common_group common.txt # Cambia il proprietario del gruppo di common.txt in common_group. # usermod -aG common_group user1 # Aggiunge user1 a common_group. # usermod -aG common_group user2 # Aggiunge user2 a common_group. # usermod -aG common_group user3 # Aggiunge user3 a common_group.
Puoi eliminare un gruppo con il seguente comando.
# gruppodel [nome_gruppo]
Se ci sono file di proprietà di nome del gruppo, non verranno eliminati, ma il proprietario del gruppo verrà impostato su GID del gruppo che è stato eliminato.
Oltre alle autorizzazioni di base di lettura, scrittura ed esecuzione di cui abbiamo discusso in Strumenti di archiviazione e impostazione degli attributi dei file – Parte 3 di questa serie, ci sono altre impostazioni di autorizzazione meno utilizzate (ma non meno importanti), a volte indicate come "permessi speciali”.
Come i permessi di base discussi in precedenza, vengono impostati utilizzando un file ottale o tramite una lettera (notazione simbolica) che indica il tipo di permesso.
Puoi eliminare un account (insieme alla sua directory home, se è di proprietà dell'utente, e tutti i file che vi risiedono, e anche lo spool di posta) utilizzando il utentedel comando con il -rimuovere opzione.
# userdel --remove [nome utente]
Ogni volta che un nuovo account utente viene aggiunto al sistema, viene creato un gruppo con lo stesso nome con il nome utente come unico membro. Altri utenti possono essere aggiunti al gruppo in un secondo momento. Uno degli scopi dei gruppi è implementare un semplice controllo di accesso ai file e ad altre risorse di sistema impostando le autorizzazioni corrette su tali risorse.
Ad esempio, supponi di avere i seguenti utenti.
Tutti hanno bisogno leggere e scrivere accesso a un file chiamato common.txt situato da qualche parte sul tuo sistema locale, o forse su una condivisione di rete che utente1 ha creato. Potresti essere tentato di fare qualcosa del tipo,
# chmod 660 common.txt. O. # chmod u=rw, g=rw, o= common.txt [notare lo spazio tra l'ultimo segno di uguale e il nome del file]
Tuttavia, questo fornirà solo leggere e scrivere accesso al proprietario del file e agli utenti che sono membri del gruppo proprietario del file (utente1 in questo caso). Di nuovo, potresti essere tentato di aggiungere utente2 e utente3 al gruppo utente1, ma questo darà loro anche accesso al resto dei file di proprietà dell'utente utente1 e gruppo utente1.
È qui che i gruppi tornano utili, ed ecco cosa dovresti fare in un caso come questo.
Quando il setuid l'autorizzazione viene applicata a un file eseguibile, un utente che esegue il programma eredita i privilegi effettivi del proprietario del programma. Poiché questo approccio può ragionevolmente sollevare problemi di sicurezza, il numero di file con autorizzazione setuid deve essere ridotto al minimo. Probabilmente troverai programmi con questo set di autorizzazioni quando un utente di sistema deve accedere a un file di proprietà di root.
Riassumendo, non è solo che l'utente può eseguire il file binario, ma anche che può farlo con i privilegi di root. Ad esempio, controlliamo i permessi di /bin/passwd. Questo binario viene utilizzato per cambiare la password di un account e modifica il /etc/shadow file. Il superutente può modificare la password di chiunque, ma tutti gli altri utenti dovrebbero essere in grado di modificare solo la propria.
Pertanto, qualsiasi utente dovrebbe avere il permesso di eseguire /bin/passwd, ma solo root sarà in grado di specificare un account. Gli altri utenti possono modificare solo le password corrispondenti.
Quando il setgid bit è impostato, l'efficace GID dell'utente reale diventa quello del proprietario del gruppo. Pertanto, qualsiasi utente può accedere a un file con i privilegi concessi al proprietario del gruppo di tale file. Inoltre, quando il bit setgid è impostato su una directory, i file appena creati ereditano lo stesso gruppo di la directory e anche le sottodirectory appena create erediteranno il bit setgid del genitore directory. Molto probabilmente utilizzerai questo approccio ogni volta che i membri di un determinato gruppo devono accedere a tutti i file in una directory, indipendentemente dal gruppo principale del proprietario del file.
# chmod g+s [nome file]
Per impostare il setgid in forma ottale, anteponi il numero 2 ai permessi di base correnti (o desiderati).
# chmod 2755 [cartella]
Quando il "bit appiccicoso"è impostato sui file, Linux lo ignora, mentre per le directory ha l'effetto di impedire agli utenti dall'eliminazione o persino dalla ridenominazione dei file che contiene a meno che l'utente non possieda la directory, il file o sia radice.
# chmod o+t [cartella]
Per impostare il bit appiccicoso in forma ottale, anteponi il numero 1 ai permessi di base correnti (o desiderati).
# chmod 1755 [cartella]
Senza il bit appiccicoso, chiunque sia in grado di scrivere nella directory può eliminare o rinominare i file. Per questo motivo, il bit appiccicoso si trova comunemente nelle directory, come /tmp, che sono scrivibili in tutto il mondo.
Esistono altri attributi che abilitano ulteriori limiti alle operazioni consentite sui file. Ad esempio, impedire che il file venga rinominato, spostato, eliminato o persino modificato. Sono impostati con il comando chattr e può essere visualizzato utilizzando il lsattr strumento, come segue.
# chattr +i file1. # chattr +un file2.
Dopo aver eseguito questi due comandi, file1 sarà immutabile (il che significa che non può essere spostato, rinominato, modificato o eliminato) mentre file2 entrerà in modalità solo append (può essere aperto solo in modalità append per la scrittura).
Uno dei modi in cui gli utenti possono accedere all'account root è digitando.
$ su.
e poi inserendo la password di root.
Se l'autenticazione riesce, verrai connesso come radice con la directory di lavoro corrente come prima. Se invece vuoi essere inserito nella home directory di root, esegui.
$ su -
e poi inserisci la password di root.
La procedura di cui sopra richiede che un utente normale conosca la password di root, il che rappresenta un serio rischio per la sicurezza. Per questo motivo, l'amministratore di sistema può configurare il sudo comando per consentire a un utente normale di eseguire comandi come un utente diverso (di solito il superutente) in modo molto controllato e limitato. Pertanto, è possibile impostare restrizioni su un utente in modo da consentirgli di eseguire uno o più comandi privilegiati specifici e nessun altro.
Leggi anche: Differenza tra utente su e sudo
Per autenticarsi usando sudo, l'utente utilizza la propria password. Dopo aver inserito il comando, ci verrà richiesta la nostra password (non quella del superutente) e se il l'autenticazione ha esito positivo (e se all'utente sono stati concessi i privilegi per eseguire il comando), il comando specificato viene effettuata.
Per concedere l'accesso a sudo, l'amministratore di sistema deve modificare il /etc/sudoers file. Si consiglia di modificare questo file utilizzando il pulsante visudo comando invece di aprirlo direttamente con un editor di testo.
# visudo.
Questo apre il /etc/sudoers file usando vim (puoi seguire le istruzioni fornite in Installa e usa vim come editor – Parte 2 di questa serie per modificare il file).
Queste sono le righe più rilevanti.
Predefinito secure_path="/usr/sbin:/usr/bin:/sbin" radice ALL=(ALL) ALL. tecmint ALL=/bin/yum update. gacanepa ALL=NOPASSWD:/bin/updatedb. %admin TUTTI=(TUTTI) TUTTI.
Diamo un'occhiata più da vicino a loro.
Default secure_path="/usr/sbin:/usr/bin:/sbin:/usr/local/bin"
Questa riga consente di specificare le directory che verranno utilizzate per sudoe viene utilizzato per impedire l'utilizzo di directory specifiche dell'utente, che possono danneggiare il sistema.
Le righe successive vengono utilizzate per specificare i permessi.
radice ALL=(ALL) ALL.
tecmint ALL=/bin/yum update.
Se non viene specificato alcun utente dopo il = sign, sudo assume l'utente root. In questo caso, utente tecnica potrà correre yum aggiornamento come radice.
gacanepa ALL=NOPASSWD:/bin/updatedb.
Il NOPASSWD la direttiva consente all'utente di eseguire gacanepa /bin/updatedb senza bisogno di inserire la sua password.
%admin TUTTI=(TUTTI) TUTTI.
Il % segno indica che questa riga si applica a un gruppo chiamato "amministratore”. Il significato del resto della riga è identico a quello di un utente normale. Ciò significa che i membri del gruppo "amministratore” può eseguire tutti i comandi come qualsiasi utente su tutti gli host.
Per vedere quali privilegi ti vengono concessi da sudo, usa il "-l"opzione per elencarli.
Moduli di autenticazione collegabili (PAM) offrono la flessibilità di impostare uno schema di autenticazione specifico in base all'applicazione e/o al servizio utilizzando i moduli. Questo strumento presente su tutte le moderne distribuzioni Linux ha superato il problema spesso affrontato dagli sviluppatori nei primi giorni di Linux, quando ogni programma che richiedeva l'autenticazione doveva essere compilato appositamente per sapere come ottenere il necessario informazione.
Ad esempio, con PAM, non importa se la tua password è memorizzata in /etc/shadow o su un server separato all'interno della tua rete.
Ad esempio, quando il programma di login deve autenticare un utente, PAM fornisce dinamicamente la libreria che contiene le funzioni per lo schema di autenticazione corretto. Pertanto, modificare lo schema di autenticazione per l'applicazione di accesso (o qualsiasi altro programma che utilizza PAM) è facile poiché comporta solo la modifica di un file di configurazione (molto probabilmente, un file chiamato dopo l'applicazione, che si trova dentro /etc/pam.d
, e meno probabile in /etc/pam.conf
).
File all'interno /etc/pam.d
indicare quali applicazioni utilizzano PAM in modo nativo. Inoltre, possiamo sapere se una determinata applicazione utilizza PAM controllando se la libreria PAM (libpam) è stato collegato ad esso:
# ldd $(quale login) | grep libpam # login usa PAM. # ldd $(quale cima) | grep libpam # top non usa PAM.
Nell'immagine sopra possiamo vedere che il libpam è stato collegato con l'applicazione di accesso. Ciò ha senso poiché questa applicazione è coinvolta nell'operazione di autenticazione dell'utente di sistema, mentre top no.
Esaminiamo il file di configurazione PAM per passwd – sì, la nota utility per cambiare le password degli utenti. Si trova a /etc/pam.d/passwd:
# cat /etc/passwd.
La prima colonna indica il genere
di autenticazione da utilizzare con il percorso-modulo
(terza colonna). Quando viene visualizzato un trattino prima del tipo, PAM non registrerà nel registro di sistema se il modulo non può essere caricato perché non è stato trovato nel sistema.
Sono disponibili i seguenti tipi di autenticazione:
account
: questo tipo di modulo verifica se l'utente o il servizio ha fornito credenziali valide per l'autenticazione.autenticazione
: questo tipo di modulo verifica che l'utente sia chi dichiara di essere e concede i privilegi necessari.parola d'ordine
: questo tipo di modulo consente all'utente o al servizio di aggiornare la propria password.sessione
: questo tipo di modulo indica cosa dovrebbe essere fatto prima e/o dopo che l'autenticazione ha esito positivo.La seconda colonna (chiamata controllo
) indica cosa dovrebbe succedere se l'autenticazione con questo modulo fallisce:
requisito
: se l'autenticazione tramite questo modulo fallisce, l'autenticazione complessiva verrà immediatamente negata.necessario
è simile a require, sebbene tutti gli altri moduli elencati per questo servizio verranno chiamati prima di negare l'autenticazione.sufficiente
: se l'autenticazione tramite questo modulo fallisce, PAM concederà comunque l'autenticazione anche se una precedente contrassegnata come richiesta fallisce.opzionale
: se l'autenticazione tramite questo modulo fallisce o va a buon fine, non succede nulla a meno che questo non sia l'unico modulo del suo tipo definito per questo servizio.includere
significa che le righe del tipo specificato devono essere lette da un altro file.sottostack
è simile a include ma gli errori di autenticazione oi successi non causano l'uscita del modulo completo, ma solo del sottostack.La quarta colonna, se esiste, mostra gli argomenti da passare al modulo.
Le prime tre righe in /etc/pam.d/passwd (mostrato sopra), caricare il autenticazione del sistema modulo per verificare che l'utente abbia fornito credenziali valide (account). In tal caso, gli consente di modificare il token di autenticazione (password) dando il permesso di utilizzare passwd (autenticazione).
Ad esempio, se aggiungi
ricorda=2.
alla riga seguente
password sufficiente pam_unix.so sha512 shadow nullok try_first_pass use_authtok.
in /etc/pam.d/system-auth:
password sufficiente pam_unix.so sha512 shadow nullok try_first_pass use_authtok Remember=2.
le ultime due password con hash di ciascun utente vengono salvate in /etc/security/opasswd in modo che non possano essere riutilizzati:
Le capacità efficaci di gestione degli utenti e dei file sono strumenti essenziali per qualsiasi amministratore di sistema. In questo articolo abbiamo trattato le basi e speriamo che tu possa usarlo come un buon punto di partenza su cui costruire. Sentiti libero di lasciare i tuoi commenti o domande qui sotto e ti risponderemo rapidamente.