GNU/Linux >> Linux Esercitazione >  >> Linux

Come gestire le autorizzazioni Linux per utenti, gruppi e altri

La gestione dell'accesso alle risorse è un compito fondamentale per gli amministratori di sistema. Questa responsabilità è costituita da tre componenti:identità, risorse e autorizzazioni. Questo articolo illustra diversi comandi di gestione di utenti, gruppi e file per controllare l'accesso alle risorse. L'articolo utilizza un "Come faccio a...?" format e presuppone che tu abbia alcune risorse con cui lavorare. Nello specifico, mi occupo dei seguenti argomenti:

  • Creazione di directory e file
  • Gestione della proprietà e dei gruppi associati
  • Impostazione dei permessi con modalità assoluta e simbolica

Allestimento di un parco giochi

Mi occupo di IT da circa 25 anni e la maggior parte del tempo è stato speso come formatore tecnico. Ciò significa che le cose che scrivo sono generalmente strutturate come una sorta di laboratorio o altre opportunità pratiche. È solo il modo in cui copro il materiale. Con questo in mente, presumo che tu abbia un paio di identità e risorse con cui sperimentare mentre leggi il resto dell'articolo. È possibile utilizzare i seguenti comandi per impostare un playground. È meglio farlo su una macchina virtuale piuttosto che sulla tua macchina Linux personale, ma queste attività sono relativamente innocue.

Crea due nuovi utenti e due nuovi gruppi con cui lavorare. Tieni presente che non è necessario configurare le password per gli utenti in questo esercizio, poiché non accederai con quegli account.

# useradd user01
# useradd user02
# groupadd groupA
# groupadd groupB

Nota :Dovresti usare il passwd user01 comando per impostare la password dell'utente.

Nella tua home directory, crea una nuova directory denominata playground :

# mkdir playground

Cambia nel ~/playground directory utilizzando il cd comando. Sei pronto per lavorare con i comandi e i concetti seguenti.

Quando hai completato l'articolo e hai appreso le tecniche che ho trattato, elimina i due account utente, i gruppi e la directory del parco giochi. Usa rm -fR /playground , userdel user01 e groupdel groupA per rimuovere le risorse.

Come faccio a creare directory e file?

Usa la mkdir comando per creare directory. Il touch comando è uno dei tanti modi per creare file.

Come creo una directory denominata Resources ?

# mkdir Resources

Come faccio a creare un percorso di directory (una serie di directory che non esistono ancora)?

# mkdir -p Resources/data/2020data

Nota :L'obiettivo qui è creare i 2020data directory, ma i data del percorso specificato directory non esiste ancora. Il -p l'opzione crea le directory principali necessarie per completare il percorso.

Come creo un file chiamato file1 ?

# touch file1

Come faccio a creare più file contemporaneamente?

# touch file2 file3 file4

Come gestisco la proprietà e i gruppi?

Nella directory playground, mostra il proprietario attuale e il gruppo associato alle Resources directory e i file.

Come faccio a visualizzare autorizzazioni, proprietari e gruppi?

# ls -l

Il ls -l comando visualizza il contenuto della directory in formato lungo. Il formato lungo contiene sia le autorizzazioni che la proprietà. Puoi vedere che l'account utente che ha creato le risorse possiede anche quelle risorse. L'associazione di gruppo è anche il gruppo principale di quell'utente.

Come posso modificare l'utente/proprietario associato a file1 ?

# chown user02 file1

Come posso modificare il gruppo associato a file1 ?

# chown :groupA file1

Come faccio a modificare il proprietario e il gruppo contemporaneamente per file2 ?

# chown user02:groupA file2

Esiste un chgrp specifico command, ma preferisco memorizzare solo un comando (chown ) e applicarlo a entrambe le funzioni (associazioni di utenti e gruppi) anziché a chown per l'utente e quindi richiamare chgrp per il gruppo.

Quindi come uso chgrp ?

# chgrp groupB file1

Come posso modificare l'utente/gruppo per una directory e tutto il suo contenuto?

# chown -R user01:groupA Resources

L'attività sopra fornisce un ricorsivo configurazione. Tecnicamente, i comandi ricorsivi vengono ripetuti su ogni oggetto specificato. In effetti, ricorsivo significa "questo e tutto ciò che contiene". Nell'esempio sopra, stai configurando l'utente/gruppo correlato per le Resources directory e tutto ciò che contiene. Senza il -R opzione, avresti effetto solo sulle Resources directory stessa, ma non il suo contenuto.

[ Ai lettori è piaciuto anche: Un'introduzione agli elenchi di controllo di accesso (ACL) di Linux]

Come gestisco le autorizzazioni?

Il cambia modalità o chmod il comando imposta le autorizzazioni. La sintassi è semplice:

chmod permissions resource-name

Ecco due esempi di manipolazione dei permessi per file2 :

# chmod 740 file2
# chmod u=rwx,g=r,o-rwx file2

Ma aspetta! Quelli sembrano essere esempi radicalmente diversi (in realtà non lo sono). Cosa sono tutte quelle lettere e quei numeri?

Dobbiamo discutere della modalità assoluta e modalità simbolica .

Come si usa la modalità assoluta?

La modalità assoluta è uno dei due modi per specificare le autorizzazioni. Ho visto questa modalità denominata modalità ottale o numerica, ma il termine che ho imparato era assoluto . Quel termine ha anche più senso per me perché è un'affermazione assoluta dei permessi desiderati. Ho sempre detto ai miei studenti che questa sembrava la più complessa delle due modalità, ma in realtà è la più semplice. Di solito erano d'accordo.

Ogni livello di accesso (lettura, scrittura, esecuzione) ha un valore ottale:

Livello di accesso Valore ottale
Leggi 4
Scrivi 2
Esegui 1

Ogni identità (utente, gruppo, altri) ha una posizione:

Identità Posizione
Utente Prima o più a sinistra
Gruppo Medio
Altri Ultimo o più a destra

La sintassi della modalità assoluta indica i permessi desiderati da sinistra a destra.

Come faccio a concedere all'utente (proprietario) di leggere, scrivere ed eseguire, il gruppo in sola lettura e tutti gli altri nessun accesso a file2 utilizzando la modalità assoluta?

# chmod 740 file2

I tre valori di autorizzazione sono associati alle identità:
    ugo
    740

  • I 7 è assegnato all'utente ed è la somma di 4+2+1 o read+write+execute (accesso completo)
  • I 4 è assegnato al gruppo ed è la somma di 4+0+0 (sola lettura)
  • Lo 0 è assegnato ad altri ed è la somma di 0+0+0 (nessun accesso)

In questo esempio, l'utente ha rwx , il gruppo ha r solo e tutti gli altri hanno nessun accesso a file2 .

Diamo un'occhiata a un altro esempio.

Come posso concedere all'utente (proprietario) la lettura e la scrittura, il gruppo di sola lettura e tutti gli altri di sola lettura su file2 ?

# chmod 644 file2
  • L'utente ha 6 (leggi e scrivi)
  • Il gruppo ne ha 4 (sola lettura)
  • Tutti gli altri ne hanno 4 (sola lettura)

Lo trovo più facile perché non ci sono calcoli coinvolti. Non mi interessa aggiungere o sottrarre autorizzazioni specifiche in base alle impostazioni correnti. Invece, dico "imposta le autorizzazioni per essere questo" e questo è il risultato finale che ottengo. È un'affermazione assoluta.

Come faccio a impostare le autorizzazioni per le Resources directory e tutto il suo contenuto utilizzando la modalità assoluta?

# chmod -R 744 Resources

Come si usa la modalità simbolica?

La modalità simbolica utilizza più simboli, ma i simboli sono più semplici da capire. Questo è interessante per gli amministratori di sistema che non conoscono le autorizzazioni standard di Linux.

Ogni livello di accesso ha un simbolo:

Livello di accesso Simbolo
Leggi r
Scrivi con
Esegui x

Ogni identità ha un simbolo:

Identità Simbolo
Utente tu
Gruppo g
Altri o

Ci sono anche operatori per manipolare i permessi:

Compito Operatore
Concedi un livello di accesso +
Rimuovi un livello di accesso -
Imposta un livello di accesso =

Il generale chmod la sintassi del comando è la stessa:

command permissions directory/file

Ecco un esempio:

Come rimuovo i permessi di lettura da altri per file2 utilizzando la modalità simbolica?

# chmod o-r file2

Questo esempio rimuove (- ) la lettura (r ) autorizzazione di altri (o ) per file2 .

Ecco un altro semplice esempio:

Come concedo le autorizzazioni di lettura e scrittura al gruppo per file2 ?

# chmod g+rw file2

Questo dà (+ ) leggi e scrivi (rw ) al gruppo (g ) per file2 .

Come faccio a impostare le autorizzazioni per una directory e tutto il suo contenuto utilizzando la modalità simbolica?

# chmod -R o=rwx,g+rw,o-rwx Resources

Autorizzazioni speciali ed elenchi di controllo accessi

La discussione precedente riguarda le autorizzazioni Linux standard, l'applicazione di rwx all'utente, al gruppo e a tutti gli altri. Linux ha molta più flessibilità, tuttavia. Autorizzazioni speciali consentono agli utenti di eseguire applicazioni con altre credenziali, controllare l'ereditarietà delle associazioni di gruppo e impedire che i file vengano modificati accidentalmente. Dai un'occhiata a questo fantastico articolo sui permessi speciali.

Linux ha anche un modo per imporre autorizzazioni diverse per utenti e gruppi diversi. Gli elenchi di controllo di accesso (ACL) consentono agli amministratori di sistema di definire le autorizzazioni per più di un utente e un gruppo, il che aggiunge molta più flessibilità alle autorizzazioni standard. Ad esempio, user01 può essere concesso rw- a file1 , mentre user02 può essere concesso r-- a file1 . Ecco un ottimo articolo sugli ACL.

[ Corso gratuito:Panoramica tecnica di Red Hat Satellite. ] 

Concludi

La creazione di risorse, la gestione degli utenti e l'impostazione delle autorizzazioni sono attività fondamentali per gli utenti Linux. Il mio obiettivo era fornire una guida rapida e semplice basata su domande o attività comuni che tutti noi dobbiamo svolgere regolarmente. Se non conosci Linux, avere una solida conoscenza degli otto comandi discussi sopra renderà la vita del tuo amministratore di sistema molto più semplice.


Linux
  1. Cheat sheet per utenti e autorizzazioni Linux

  2. Come creare una directory condivisa per tutti gli utenti in Linux

  3. Come trovare file con autorizzazioni SUID e SGID in Linux

  4. Come gestire la scadenza e l'invecchiamento della password utente in Linux

  5. Come gestire ed elencare i servizi in Linux

Autorizzazioni Linux:come trovare le autorizzazioni di un file

Come elencare utenti e gruppi su Linux

Come creare e gestire nuovi utenti su Linux

Come creare utenti e gruppi in CentOS7?

Come rilevare e gestire i dispositivi su Linux

Come installare e configurare il sottosistema Windows per Linux