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,
permissions
possono 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
,o
per rappresentare utenti, gruppi e altri. I permessi sono rappresentati comer, w, x
rispettivamente 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
read
ewrite
autorizzazione pergroup
eothers
:chmod go-rw
. - Rimozione di
read
autorizzazioni perothers
:chmod o-r
. - Assegnare
write
autorizzazione agroup
e 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
execution
diritti daother
egroup
.
Per rimuovere l'esecuzione da other
e group
, sottrai 1 dalla parte di esecuzione degli ultimi 2 ottetti.
- Assegna
read
,write
eexecute
auser
,read
eexecute
algroup
e soloread
agli 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.