Linux è un sistema operativo multiutente, il che significa che supporta più utenti contemporaneamente.
Poiché molte persone possono accedere al sistema contemporaneamente e alcune risorse sono condivise, Linux controlla l'accesso tramite la proprietà e le autorizzazioni.
Proprietà del file Linux
In Linux, ci sono tre tipi di proprietari:user , group e others .
Utente Linux
Un utente è il proprietario predefinito e il creatore del file. Quindi anche questo utente è chiamato proprietario.
Gruppo Linux
Un gruppo di utenti è una raccolta di utenti. Gli utenti che appartengono a un gruppo avranno le stesse autorizzazioni del gruppo Linux per accedere a un file/cartella.
Puoi utilizzare i gruppi per assegnare le autorizzazioni in blocco invece di assegnarle singolarmente. Un utente può appartenere anche a più di un gruppo.
Altro
Tutti gli utenti che non fanno parte delle classi utente o gruppo appartengono a questa classe.
Autorizzazioni file Linux
I permessi dei file si dividono in tre categorie:read , write e execute .
Autorizzazione di lettura
Per i file normali, le autorizzazioni di lettura consentono agli utenti di aprire e leggere solo il file. Gli utenti non possono modificare il file.
Allo stesso modo per le directory, i permessi di lettura consentono l'elenco del contenuto della directory senza alcuna modifica nella directory.
Autorizzazione in scrittura
Quando i file hanno i permessi di scrittura, l'utente può modificare (modificare, eliminare) il file e salvarlo.
Per le cartelle, i permessi di scrittura consentono a un utente di modificarne il contenuto (creare, eliminare e rinominare i file al suo interno) e di modificare il contenuto dei file per i quali l'utente ha i permessi di scrittura.
Esegui autorizzazione
Per i file, le autorizzazioni di esecuzione consentono all'utente di eseguire uno script eseguibile. Per le directory, l'utente può accedervi e accedere ai dettagli sui file nella directory.
Di seguito è riportata la rappresentazione simbolica delle autorizzazioni per utenti, gruppi e altri.
Nota che possiamo trovare i permessi di file e cartelle usando un elenco lungo (ls -l ) su un terminale Linux.
Nell'output sopra, d rappresenta una directory e - rappresenta un file normale.
Come modificare le autorizzazioni in Linux usando chmod Comando
Ora che conosciamo le basi di proprietà e permessi, vediamo come possiamo modificare i permessi usando il chmod comando.
Sintassi di chmod :
chmod permissions filename Dove,
permissionspossono essere letti, scritti, eseguiti o una loro combinazione.filenameè il nome del file per il quale è necessario modificare i permessi. Questo parametro può anche essere un elenco di file per modificare le autorizzazioni in blocco.
Possiamo modificare i permessi utilizzando due modalità:
- Modalità simbolica :questo metodo utilizza simboli come
u,g,oper rappresentare utenti, gruppi e altri. I permessi sono rappresentati comer, w, xrispettivamente per leggere, scrivere ed eseguire. Puoi modificare le autorizzazioni utilizzando +, - e =. - Modalità assoluta :questo metodo rappresenta i permessi come numeri ottali a 3 cifre compresi tra 0 e 7.
Ora, vediamoli nel dettaglio.
Come modificare le autorizzazioni utilizzando la modalità simbolica
La tabella seguente riassume la rappresentazione dell'utente:
| Rappresentanza dell'utente | Descrizione |
|---|---|
| tu | utente/proprietario |
| g | gruppo |
| o | altro |
Possiamo utilizzare operatori matematici per aggiungere, rimuovere e assegnare autorizzazioni. La tabella seguente mostra il riepilogo:
| Operatore | Descrizione |
|---|---|
| + | Aggiunge un'autorizzazione a un file o una directory |
| – | Rimuove l'autorizzazione |
| = | Imposta l'autorizzazione se non era presente prima. Sostituisce anche le autorizzazioni se impostate in precedenza. |
Esempio:
Supponiamo di avere uno script e voglio renderlo eseguibile per il proprietario del file zaira .
Le autorizzazioni per i file correnti sono le seguenti:
Dividiamo i permessi in questo modo:
Per aggiungere diritti di esecuzione (x ) al proprietario (u ) utilizzando la modalità simbolica, possiamo utilizzare il comando seguente:
chmod u+x mymotd.sh Risultato:
Ora possiamo vedere che i permessi di esecuzione sono stati aggiunti per il proprietario zaira .
Esempi aggiuntivi per modificare i permessi tramite il metodo simbolico:
- Rimozione di
readewriteautorizzazione pergroupeothers:chmod go-rw. - Rimozione di
readautorizzazioni perothers:chmod o-r. - Assegnare
writeautorizzazione agroupe sovrascrivere il permesso esistente:chmod g=w.
Come modificare le autorizzazioni utilizzando la modalità assoluta
La modalità assoluta utilizza i numeri per rappresentare i permessi e gli operatori matematici per modificarli.
La tabella seguente mostra come possiamo assegnare autorizzazioni pertinenti:
| Autorizzazione | Fornire il permesso |
|---|---|
| leggi | aggiungi 4 |
| scrivi | aggiungi 2 |
| esegui | aggiungi 1 |
Le autorizzazioni possono essere revocate mediante sottrazione. La tabella seguente mostra come rimuovere le autorizzazioni pertinenti.
| Autorizzazione | Revocare l'autorizzazione |
|---|---|
| leggi | sottrai 4 |
| scrivi | sottrai 2 |
| esegui | sottrai 1 |
Esempio :
- Imposta
read(aggiungi 4) peruser,read(aggiungi 4) eexecute(aggiungi 1) per il gruppo e soloexecute(aggiungi 1) per gli altri.
chmod 451 file-name
Ecco come abbiamo eseguito il calcolo:
Nota che è lo stesso di r--r-x--x .
- Rimuovi
executiondiritti daotheregroup.
Per rimuovere l'esecuzione da other e group , sottrai 1 dalla parte di esecuzione degli ultimi 2 ottetti.

- Assegna
read,writeeexecuteauser,readeexecutealgroupe soloreadagli altri.
Sarebbe lo stesso di rwxr-xr-- .
Come cambiare la proprietà usando il chown Comando
Successivamente, impareremo come modificare la proprietà di un file. Puoi cambiare la proprietà di un file o di una cartella usando il chown comando. In alcuni casi, la modifica della proprietà richiede sudo autorizzazioni.
Sintassi di chown :
chown user filename
Come modificare la proprietà dell'utente con chown
Trasferiamo la proprietà dall'utente zaira all'utente news .
chown news mymotd.sh
Comando per cambiare proprietà:sudo chown news mymotd.sh
Risultato:
Come modificare la proprietà di utenti e gruppi contemporaneamente
Possiamo anche usare chown per cambiare utente e gruppo contemporaneamente.
chown user:group filename Come modificare la proprietà della directory
Puoi cambiare la proprietà in modo ricorsivo per i contenuti in una directory. L'esempio seguente cambia la proprietà di /opt/script cartella per consentire all'utente admin .
chown -R admin /opt/script Come modificare la proprietà del gruppo
Nel caso in cui dobbiamo solo cambiare il proprietario del gruppo, possiamo usare chown precedendo il nome del gruppo con i due punti :
chown :admins /opt/script Esercizio guidato sulle autorizzazioni Linux
Finora abbiamo esplorato i permessi, le proprietà ei metodi per cambiarli. Ora rafforzeremo il nostro apprendimento con un esercizio guidato.
Obiettivo :Per creare gruppi e assegnare autorizzazioni pertinenti ai suoi membri. Verifica l'accesso accedendo da utenti non autorizzati.
Compito :crea un gruppo chiamato dev-team e aggiungi due membri (John e Bob). Crea una cartella /home/dev-team e cambia la proprietà nel gruppo dev-team . Verifica che entrambi gli utenti nel dev-team gruppo hanno letto e scrivi accedere alla cartella.
Crea un altro gruppo project-manager e aggiungi un utente Fatima ad esso. Verifica se la cartella /home/dev-team è accessibile da Fatima .
Visualizzazione del problema
Possiamo visualizzare il problema in questo modo:
Passaggio 1:passa all'utente root.
Passa all'utente root in modo da avere i diritti per creare nuovi utenti e gruppi.
Mostra suggerimento
Usa sudo comando con flag i .
Se hai la password di root, puoi accedere anche usando quella.
Mostra la soluzione
Inserisci sudo -i per passare all'utente root.
Inserisci whoami per scoprire se sei l'utente root:

Se non hai root accedere, utilizzare i comandi con l'aggiunta di sudo .
Passaggio 2:crea un gruppo dev-team
Mostra suggerimento
Usa groupadd comando.
Sintassi:groupadd group-name
Mostra la soluzione
Inserisci groupadd dev-team per creare il dev-team gruppo
Verifica:cat /etc/group | grep dev-team
Fase 3:crea due nuovi utenti John e Bob e aggiungili al dev-team gruppo
Mostra suggerimento
Usa il comando useradd .
useradd crea un nuovo utente e lo aggiunge al gruppo specificato.
Sintassi:useradd -G groupname username
Dove -G specifica il gruppo.
Mostra la soluzione
useradd -G dev-team John
useradd -G dev-team Bob
Verifica:cat /etc/group | grep dev-team

Passaggio 4:fornisci le password per gli utenti John e Bob
Mostra suggerimento
Usa il comando passwd
passwd crea una password per gli utenti.
Sintassi:passwd username
Mostra la soluzione
passwd John
passwd Bob
Passaggio 5:crea una directory in /home e denominala dev-team
Mostra suggerimento
Usa il comando mkdir
mkdir crea una directory.
Sintassi:mkdir directory-name
Mostra la soluzione
mkdir /home/dev-team
Verifica:

Passaggio 6:cambia la proprietà del gruppo della cartella dev-team per raggruppare dev-team
Mostra suggerimento
Usa il comando chown
Sintassi:chown :group-name folder
Mostra la soluzione
chown :dev-team /home/dev-team/

Passaggio 7:assicurati i permessi della cartella dev-team consentire ai membri del gruppo di creare ed eliminare file.
Mostra suggerimento
Usa il comando chmod
Le autorizzazioni di scrittura consentono a utenti e gruppi di creare ed eliminare file.
Sintassi:chmod permissions folder
Mostra la soluzione
chmod g+w /home/dev-team/

Passaggio 8:assicurati che gli "altri" non abbiano accesso ai file di dev-team cartella.
Mostra suggerimento
Usa il comando chmod
Rimuovi i permessi di lettura, scrittura, esecuzione da 'altri' se esistono.
Sintassi:chmod permissions folder
Mostra la soluzione
chmod o-rx dev-team

Passaggio 9:esci dalla root sessione e passa a John
Mostra suggerimento
Usa il comando exit per disconnettersi dall'utente root.
Usa su per cambiare utente.
Sintassi:su - user
Per confermare l'utente corrente, usa il comando whoami .
Mostra la soluzione
exit
su - John
Verifica con il comando whoami .
Passaggio 10:vai alla cartella:/home/dev-team
Mostra suggerimento
Usa il comando cd per cambiare cartella.
Sintassi:cd /path/to/folder
Conferma il percorso corrente con pwd .
Mostra la soluzione
cd /home/dev-team
Passaggio 11:crea un file vuoto nella cartella:/home/dev-team
Mostra suggerimento
Usa il comando touch per creare un file vuoto.
Sintassi:touch filename
Mostra la soluzione
touch john-file.txt
Verifica:ls -lrt

Passaggio 12:cambia la proprietà del gruppo del file creato in dev-team e verifica.
Mostra suggerimento
Usa il comando chown per cambiare proprietà.
Sintassi:chown :group file-name
Mostra la soluzione
chown :dev-team john-file.txt
Una volta modificata la proprietà del gruppo, tutti i membri del gruppo possono accedere a questo file.
Verifica ls -lrt

Passaggio 13:esci dalla shell e passa all'utente Bob's
Mostra suggerimento
Usa il comando exit per uscire dal terminale.
Usa su per cambiare utente.
Sintassi:su - user
Per confermare l'utente corrente, usa il comando whoami .
Mostra la soluzione
exit
su - Bob
Verifica l'utente corrente con il comando whoami .
Passaggio 14:vai al percorso /home/dev-team
Mostra suggerimento
Usa il comando cd per cambiare cartella.
Sintassi:cd /path/to/folder
Conferma il percorso corrente con pwd .
Mostra la soluzione
cd /home/dev-team
Passaggio 15:scopri Bob's privilegi per accedere a john-file.txt
Mostra suggerimento
Usa il comando ls -l per un elenco lungo.
Sintassi:ls -l | grep file-name
Il gruppo ha rw- permessi?
Mostra la soluzione
ls -l | grep john-file.txt

Passaggio 16:modifica il file john-file.txt mentre sei loggato come Bob's
Mostra suggerimento
Usa il comando echo per aggiungere del testo al file.
Sintassi:echo "Some text" >>file-name
Ciò reindirizzerebbe il testo citato alla fine del file.
Mostra la soluzione
echo "This is Bob's comment" > john-file.txt
Se tutti i permessi sono impostati correttamente, Bob's sarebbe autorizzato a modificare e salvare questo file. Altrimenti otterresti un errore come questo:Permission denied .
Verifica cat john-file.txt

Passaggio 17:crea un altro gruppo project-manager e assegna un membro Fatima ad esso
Mostra suggerimento
Usa il comando groupadd per aggiungere un nuovo gruppo.
Sintassi:groupadd group-name
Crea un nuovo utente con il comando useradd .
Usa flag -G per assegnargli un utente.
Mostra la soluzione
groupadd project-manager
useradd -G project-manager Fatima
passwd Fatima
Passaggio 18:vai alla cartella /home/dev-team e verifica se Fatima può accedervi
Mostra suggerimento
Usa cd per passare a /home/dev-team .
Mostra la soluzione
cd /home/dev-team .
Otteniamo questo errore:

Questo perché, others non ho alcun accesso alla cartella dev-team .
Se ricordiamo, di seguito sono riportati i diritti del dev-team cartella.

Conclusione
Le autorizzazioni e le proprietà sono concetti utili per rafforzare la sicurezza nei sistemi operativi multiutente. Spero che tu sia stato in grado di imparare a modificare le autorizzazioni e le proprietà in modo approfondito.
Qual è la tua cosa preferita che hai imparato da questo tutorial? Fammi sapere su Twitter!
Puoi anche leggere i miei altri post qui.
Grazie a Tom Mondloch per il suo aiuto con l'esercizio guidato.