Maestro delle autorizzazioni di Linux: Un’approfondita analisi di Chmod e Chown

Ti sei mai trovato impigliato nel complicato mondo dei permessi di Linux? Se ti stai ancora chiedendo chi ha il permesso di leggere, scrivere o eseguire cosa, beh, sei nel posto giusto. Svela l’arte intricata dei permessi di Linux, concentrati specificamente sulla potente coppia: chmod e chown!

In questo tutorial, ti doterai delle competenze necessarie per controllare l’accesso ai tuoi file e alle tue directory con fiducia.

Ora arrotola le maniche e conquista i permessi di Linux come un campione!

Prerequisiti

Prima di immergerti in questa disamina approfondita dei permessi di Linux, assicurati di avere una macchina Linux per padroneggiare i comandi chmod e chown. Questo tutorial utilizza Ubuntu 22.04 LTS (Jammy Jellyfish).

Comprendere i Comandi chmod e chown

Nel regno dei permessi di Linux, i comandi chmod e chown hanno un potere significativo. Capire come utilizzare questi comandi in modo efficace è cruciale per qualsiasi utente di Linux, dai principianti agli amministratori esperti.

Entrambi i comandi offrono molti modi per controllare il tuo sistema Linux, ma di seguito sono riportati i concetti di base di ciò che ciascuno può fare:

  • chmod – Questo comando è fondamentale per gestire i permessi di file e directory in Linux, il che ti consente di specificare chi può leggere, scrivere ed eseguire un file. Utilizzando una combinazione di simboli e codici numerici, puoi concedere o limitare l’accesso a utenti, gruppi e altri.
  • chown – Con questo comando, puoi cambiare la proprietà dei file e delle directory. Questo comando è inestimabile quando hai bisogno di trasferire il controllo amministrativo o modificare l’associazione tra un file e un utente/gruppo.

Sia che si tratti di salvaguardare dati sensibili o semplificare l’accesso per un team, questi comandi sono i tuoi affidabili compagni nel mondo delle operazioni sui file Linux.

Continua a leggere e immergiti ancora più a fondo nelle complessità di questi comandi.

Elenco dei File e Visualizzazione delle Autorizzazioni

Prima di cambiare le autorizzazioni e la proprietà con i comandi chmod e chown, il primo passo è elencare i file e visualizzare le loro autorizzazioni.

Come trovare un libro in una biblioteca, in Linux, spesso avrai bisogno di visualizzare un elenco di file insieme alle loro autorizzazioni associate. Questa conoscenza è cruciale per una gestione efficace dei file.

Per visualizzare le autorizzazioni di un file o di una directory:

Apri un terminale ed esegui il seguente comando ls per elencare tutti i file e le directory nella directory di lavoro corrente in un formato lungo (-l)

ls -l

Il formato lungo fornisce informazioni dettagliate su ogni file o directory, come mostrato di seguito.

Queste informazioni includono autorizzazioni, numero di collegamenti, proprietario, gruppo, dimensione e ora di modifica. Ma il tuo focus in questo momento sono le autorizzazioni dei file.

Viewing a list of files and directories

Tre autorizzazioni chiave regolano ogni file e directory: lettura (r), scrittura (w) ed esecuzione (x). Ciascuna determina come gli utenti interagiscono con il contenuto di ogni file e directory.

Inoltre, ciascuna di queste autorizzazioni viene applicata attraverso tre categorie distinte di proprietà: proprietario, gruppo e altri (utenti che non sono né membri del gruppo).

Quanto segue illustra ogni parte delle autorizzazioni dei file:

  • Il primo carattere indica un file () o una directory (d).
  • La prima parte (rw-) – Fornisce al proprietario le autorizzazioni di lettura e scrittura ma non di esecuzione.
  • La seconda parte (rw-) – Concede al gruppo le autorizzazioni di lettura e scrittura ma non di esecuzione.
  • L’ultima parte (r-) – Consente agli altri di leggere ma non di scrivere o eseguire.
Illustrating file permissions

Modifica delle autorizzazioni tramite il comando chmod: Modalità Simbolica

Espandi la tua comprensione delle autorizzazioni dei file, immergendoti in un potente strumento per modificare le autorizzazioni. Immagina di poter regolare chi può accedere, modificare o eseguire un file o una directory con precisione. Il comando chmod (cambia modalità) ti concede il potere di prendere il controllo del tuo sistema Linux.

Quando hai bisogno di un modo flessibile ed espressivo per controllare l’accesso ai tuoi file e alle tue directory in modo preciso, la modalità simbolica farà al caso tuo.

Per modificare le autorizzazioni con il comando chmod tramite la modalità simbolica, segui questi passaggi:

1. Esegui il comando who di seguito per creare un nuovo file (>) chiamato user.txt come utente non privilegiato, contenente un elenco degli utenti attualmente connessi alla tua macchina Linux.

Questo comando non fornisce output sul terminale, ma verificherai i permessi del file nel passaggio successivo.

who > user.txt

2. Successivamente, esegui il comando di seguito per visualizzare i permessi del file user.txt.

ls -l user.txt

Qui sotto, puoi vedere i permessi predefiniti del file, il proprietario, il giorno e il mese di creazione e il nome del file.

Fai attenzione ai permessi correnti del file, poiché li confronti successivamente. Per ora, concentrati sui permessi dell’utente (rw-).

Viewing the file’s default permissions

3. Ora, esegui il comando seguente per rimuovere (-) il permesso di scrittura (w) per il proprietario (u), lasciando invariati tutti gli altri permessi per le altre categorie.

La tabella seguente illustra cosa rappresenta ciascun simbolo:

User Symbol Details Operation Symbol Details Permission Symbol Details
u Owner + Add permissions r Read
g Group Remove permissions w Write
o Others = Set permissions explicitly x Execute

Quando ha successo, il comando chmod non ha output sul terminale, il che si applica in tutto questo tutorial.

chmod u-w user.txt

4. Dopo aver modificato i permessi, esegui il comando di seguito per visualizzare i permessi del file user.txt.

ls -l user.txt

Confronta i permessi del file che hai annotato nel passo due (rw-) con quelli qui sotto. Nota che il proprietario (u) ha ora solo il permesso di lettura (r–).

Viewing modified owner permission

5. Ora, esegui ciascun comando di seguito per eseguire le seguenti operazioni:

  • Aggiungi (+), scrivi (w) ed esegui (x) i permessi per il proprietario (u) sullo stesso file user.txt.
  • Visualizza le informazioni del file user.txt per verificare le autorizzazioni modificate.
chmod u+wx user.txt
ls -l user.txt

Come mostrato di seguito, l’utente ora ha i permessi di lettura, scrittura ed esecuzione (rwx) per il file user.txt.

Viewing modified owner permissions

6. Invece di aggiungere, esegui il comando chmod di seguito per rimuovere (-) quanto segue:

  • Permesso di esecuzione (x) per il proprietario (u).
  • Permesso di scrittura (w) per il gruppo (g).
  • Tutti i permessi (rwx) per gli altri (o).

Questo comando ti consente di rimuovere simultaneamente i permessi da diverse categorie con un singolo comando.

Questa volta, l’opzione -v dice a chmod di mostrare un messaggio sulle modifiche apportate dall’operazione.

chmod -v u-x,g+w,o-rwx user.txt
Viewing modified permissions for owner, group, and others

7. Successivamente, esegui il seguente comando per effettuare le seguenti operazioni:

  • Aggiungi (+) i permessi di lettura (r) a tutte le categorie.
  • Rimuovi (-) i permessi di scrittura ed esecuzione (wx) per tutte le (a) categorie.
chmod a+r,a-wx user.txt

8. Ora, esegui il comando sottostante per visualizzare gli aggiornamenti delle autorizzazioni del file user.txt.

ls -l user.txt
Viewing updated permissions for all categories

? In alternativa, puoi modificare le stesse autorizzazioni per tutte e tre le categorie (utente, gruppo e altri) con i seguenti comandi:

chmod ugo-r – Rimuove (-) le autorizzazioni di lettura (r) per tutte e tre le categorie (ugo).

chmod ugo+r – Aggiunge (+) le autorizzazioni di lettura (r) per tutte e tre le categorie (ugo).

9. Infine, esegui i comandi seguenti per eseguire le seguenti operazioni:

  • chmod – Imposta (=) le autorizzazioni di lettura e scrittura (rw) per il proprietario e il gruppo, e rimuove le autorizzazioni degli altri (o=).
    Il simbolo = ti permette di impostare esplicitamente le autorizzazioni e sovrascrivere eventuali autorizzazioni esistenti. Se non vengono specificate autorizzazioni dopo il simbolo =, tutte le autorizzazioni per quella categoria vengono rimosse.
  • ls – Visualizza le modifiche apportate alle autorizzazioni del file user.txt.
chmod ug=rw,o= user.txt
ls -l user.txt
Viewing the modified permissions set

Regolazione dei Diritti di Accesso Utilizzando il Comando chmod: Modalità Ottale

Immagina di avere la capacità di impostare rapidamente e con precisione le autorizzazioni per i tuoi file senza le complessità della notazione simbolica. La modalità ottale (notazione in base otto) diventerà il tuo nuovo metodo preferito per gestire le autorizzazioni.

Nella modalità ottale (notazione in base otto), le autorizzazioni sono rappresentate utilizzando un numero di quattro o tre cifre, da 0 a 7. Ciascun numero corrisponde a un insieme specifico di autorizzazioni per il proprietario, il gruppo e gli altri, come segue:

  • Lettura (r) = 4
  • Scrittura (w) = 2
  • Esecuzione (x) = 1
  • Nessuna autorizzazione (-) = 0

Per vedere come funziona la modalità ottale nella gestione delle autorizzazioni dei file, esegui questi passaggi:

1. Esegui il seguente comando chmod per aggiungere i seguenti permessi (664) al file user.txt:

  • Proprietario – lettura (4) + scrittura (2) + esecuzione (0) = 6
  • Gruppo – lettura (4) + scrittura (2) + esecuzione (0) = 6
  • Altri – lettura (4) + scrittura (0) + esecuzione (0) = 4

Quando si utilizza un numero a quattro cifre con il comando chmod per i permessi dei file in Linux, la cifra iniziale (a sinistra) rappresenta i permessi speciali, come setuid, setgid e bit sticky. Le tre cifre successive rappresentano i permessi standard per il proprietario, il gruppo e gli altri, rispettivamente.

Ma quando si utilizza un numero a tre cifre, la prima cifra rappresenta i permessi del proprietario del file (u), la seconda del gruppo del file (g) e l’ultima per gli altri (o).

In molti casi, soprattutto quando non si tratta di permessi speciali, potresti vedere solo la notazione a tre cifre. Lo zero iniziale, che indica la notazione ottale, può essere sottinteso e quindi omesso. Come nell’esempio qui sotto, anziché 0664, si utilizza 664.

chmod 664 user.txt

2. Successivamente, esegui il comando seguente per visualizzare i permessi del file user.txt.

ls -l user.txt

Nell’output sottostante, puoi vedere che i permessi impostati per il file user.txt sono in modalità simbolica, equivalente a 664 in modalità ottale.

Viewing permissions modified via octal mode

3. Ora, esegui il comando stat di seguito per visualizzare un insieme completo di statistiche sul file user.txt, comprese le autorizzazioni nei modi simbolico e ottale.

stat user.txt

Sulla proprietà Accesso, come mostrato di seguito, vedrai la modalità ottale e simbolica associate alle autorizzazioni del file user.txt.

Con queste informazioni, migliorerai la tua comprensione dell’aggiustamento delle autorizzazioni utilizzando la modalità ottale.

Viewing the octal and symbolic representations of permissions

Cambiamento della proprietà del file con il comando chown

Mentre le autorizzazioni dettano quali azioni possono essere eseguite su un file o una directory, puoi specificare chi ha il diritto di impostare o modificare queste autorizzazioni cambiando la proprietà.

Il comando chown (cambio proprietario) è il comando principale per gestire la proprietà di file e directory. Come il comando chmod, il comando chown è un comando solo per root: solo l’utente root può cambiare la proprietà di un file o di una directory.

Per gestire la proprietà con il comando chown, procedi con i passaggi seguenti:

1. Esegui i comandi seguenti per creare un utente (useradd) di nome bill e fornire una password sicura.

Devi avere più di un utente sulla tua macchina locale oltre all’utente predefinito, che sei tu, per vedere come funziona il cambio di proprietà.

sudo useradd bill
sudo passwd bill
Adding a user and updating user password

2. Successivamente, esegui ciascun comando qui sotto, scrivi un elenco degli utenti attualmente connessi (who) in un file chiamato new.txt come utente non privilegiato e visualizza (ls) il suo proprietario e le autorizzazioni.

who > new.txt
ls -l  new.txt

Di seguito, l’output mostra che il proprietario del file è mercy.

Viewing the owner of the new.txt file

3. Con il proprietario verificato, esegui il comando chown qui sotto per cambiare il proprietario del file new.txt in bill.

Come il comando chmod, il comando chown non fornisce un output, ma verificherai il cambio di proprietario nel passaggio successivo.

sudo chown bill new.txt

4. Ora, esegui il seguente comando per visualizzare (ls) il nuovo proprietario del file new.txt.

ls -l  new.txt

L’output qui sotto conferma che hai cambiato con successo il proprietario del file new.txt in bill, che ora ha il controllo e l’autorità su quel file.

Viewing the new owner of the new.txt file

Imporre il Comando chown per Modificare il Gruppo Proprietario

Nel sistema di file Linux, ogni file e directory è associato non solo a un singolo proprietario ma anche a un gruppo. Proprio come uno strumento singolo fuori tono può interrompere l’intero ensemble, la proprietà incorretta può portare a potenziali problemi.

Preoccupato? Non proprio. L’associazione di gruppo consente un approccio stratificato alle autorizzazioni dei file. Questo approccio consente a più utenti di collaborare e condividere l’accesso in base all’appartenenza al gruppo.

Per modificare la proprietà di gruppo, segui i seguenti passaggi:

1. Esegui il comando sottostante per visualizzare il gruppo associato al file new.txt.

ls -l  new.txt
Viewing the group associated with the new.txt file

2. Successivamente, esegui i comandi di seguito, i quali non forniscono output ma eseguono le seguenti operazioni:

  • Crea un gruppo (groupadd) chiamato developers.
  • Cambia la proprietà di gruppo (chown) del file new.txt in developers.
sudo groupadd developers
sudo chown :developers new.txt

? In alternativa, anziché un approccio individuale, utilizza i seguenti comandi per cambiare ricorsivamente il proprietario e la proprietà di gruppo di un file o di un intero directory.

sudo chown -R john:finance-group user.txt

sudo chown -R john:finance-group ~/Desktop

3. Ora, esegui di nuovo il seguente comando per visualizzare (ls) la nuova proprietà di gruppo del file new.txt.

ls -l  new.txt

Di seguito, l’output conferma che hai cambiato con successo la proprietà di gruppo del file new.txt in developers.

Viewing the new group ownership of the new.txt file

Modifica della Proprietà del File tramite UID e GID Numerici

Mentre i nomi utente e i nomi dei gruppi offrono un modo leggibile dall’uomo per identificare i proprietari dei file, ogni utente e gruppo è anche associato a identificatori numerici univoci.

Questi identificatori numerici univoci sono User ID (UID) e Group ID (GID). Forniscono un modo inequivocabile per impostare la proprietà del file in ambienti con nomi utente e nomi di gruppi sovrapposti o simili.

Per cambiare la proprietà utilizzando UID e GID numerici, esegui questi passaggi:

1. Esegui il comando seguente per visualizzare le informazioni (ls) sul file new.txt.

L’opzione -n indica al comando ls di visualizzare UID e GID numerici invece di risolverli ai rispettivi nomi utente e di gruppo.

ls -n new.txt

Nota l’UID e GID associati al file new.txt, poiché ne avrai bisogno per fare confronti nella fase successiva.

Viewing the UID and GID associated with the new.txt file

2. Successivamente, esegui i seguenti comandi getent per ottenere UID e GID dell’utente e del gruppo che desideri impostare come proprietario del tuo file.

Assicurati di sostituire i segnaposto <username> e <groupname> con il nome utente e il nome del gruppo preferiti.

getent passwd <username>
getent group <groupname>

Prendi nota dell’UID (cioè, 1002) e del GID (cioè, 1005) nell’output seguente, poiché ne avrai bisogno per cambiare la proprietà nella fase successiva.

Di default, quando un utente viene creato in Linux, viene creato anche un gruppo con lo stesso nome dell’utente. Questo gruppo funge da gruppo principale dell’utente e viene aggiunto automaticamente a questo gruppo principale.

Pertanto, il GID dell’utente john differisce dal GID del gruppo finance. A meno che l’utente non venga esplicitamente aggiunto al gruppo, i rispettivi GID rimangono differenti.

Viewing UID and GID for user john and group finance

3. Successivamente, esegui il seguente comando per cambiare la proprietà del file new.txt e la proprietà di gruppo. Assicurati di sostituire 1002 e 1005 con quelli annotati nel secondo passo.

? Si noti che l’utilizzo di UID e GID numerici può essere meno leggibile rispetto ai nomi utente e ai nomi dei gruppi. Assicurati quindi di utilizzare i numeri corretti per evitare modifiche non intenzionali.

sudo chown 1002:1005 new.txt

4. Infine, eseguire di nuovo il comando qui sotto per elencare le informazioni (ls) sul file new.txt e verificare le modifiche nella proprietà del file.

ls -n new.txt

Confronta l’UID e il GID che hai annotato al passo uno con quelli qui sotto. Nota che la nuova proprietà del file è stata cambiata da 1001:1003 a 1002:1005.

Verifying the new UID and GID for the new.txt file

Conclusione

Ti sei appena impegnato in una esplorazione completa delle autorizzazioni di Linux, acquisendo padronanza su comandi cruciali come chmod e chown. Durante questo tutorial, sei diventato esperto nel modificare le autorizzazioni usando modalità simboliche e ottali.

Hai anche acquisito le competenze per gestire la proprietà dei file e gli assegnamenti di gruppo, sia per nome che attraverso UID e GID numerici. Con questa nuova competenza in chmod e chown, ora possiedi potenti strumenti per governare l’accesso e la proprietà all’interno del tuo sistema Linux.

Ma perché non rafforzare ulteriormente la tua competenza in Linux? Forse considera di approfondire i metodi di controllo degli accessi avanzati, compresi gli elenchi di controllo degli accessi (ACL)? Puntare a un controllo ancora più preciso sulle autorizzazioni dei file e delle directory!

Source:
https://adamtheautomator.com/chmod-and-chown/