GNU/Linux >> Linux Esercitazione >  >> Linux

Linux chmod and chown - Come modificare le autorizzazioni e la proprietà dei file in Linux

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à:

  1. Modalità simbolica :questo metodo utilizza simboli come u , g , o per rappresentare utenti, gruppi e altri. I permessi sono rappresentati come r, w, x rispettivamente per leggere, scrivere ed eseguire. Puoi modificare le autorizzazioni utilizzando +, - e =.
  2. 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 e write autorizzazione per group e others :chmod go-rw .
  • Rimozione di read autorizzazioni per others :chmod o-r .
  • Assegnare write autorizzazione a group 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) per user , read (aggiungi 4) e execute (aggiungi 1) per il gruppo e solo execute (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 da other e group .

Per rimuovere l'esecuzione da other e group , sottrai 1 dalla parte di esecuzione degli ultimi 2 ottetti.

  • Assegna read , write e execute a user , read e execute al group e solo read 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.


Linux
  1. Come copiare le autorizzazioni e la proprietà dei file su un altro file in Linux

  2. Come utilizzare il comando chown per modificare la proprietà in Linux

  3. Come utilizzare il comando chmod (Cambia modalità) in Linux

  4. Come gestire le autorizzazioni/proprietà di file e directory in Linux

  5. Come eseguire il chmod e il chown dei file nascosti in Linux?

Come modificare le autorizzazioni in Linux

Che cos'è l'UID in Linux, come trovarlo e modificarlo

Comando Chmod:come modificare le autorizzazioni dei file in Linux

Impara l'uso del comando chown (Cambia proprietà) in Linux

Come cambiare utente su Linux

Comprendere le autorizzazioni di base dei file e la proprietà in Linux