Permessi dei file in Linux/Unix: come leggere, scrivere e modificare
⚡ Riepilogo intelligente
Nei sistemi Linux e Unix, i permessi sui file controllano chi può leggere, scrivere ed eseguire ciascun file, proteggendo un sistema multiutente attraverso due livelli: la proprietà, che assegna i permessi a un utente, un gruppo e altri, e i permessi di lettura, scrittura ed esecuzione.
Permessi dei file in Linux Unix e i suoi gestori decidono chi può leggere, modificare o eseguire ciascun file, garantendo così la sicurezza di un sistema multiutente condiviso. Questa pagina illustra la proprietà dei file, i permessi di lettura, scrittura ed esecuzione e i comandi per modificarli.
Linux è un clone di Unix, il sistema operativo multiutente che può essere utilizzato simultaneamente da molti utenti. Linux può essere utilizzato anche su mainframe e server senza alcuna modifica. Tuttavia, ciò solleva problemi di sicurezza, poiché un utente non autorizzato o malintenzionato può corrompere, modificare o rimuovere dati cruciali. Per una sicurezza efficace, Linux suddivide l'autorizzazione in due livelli:
- Proprietà
- permesso
Il concetto di permessi e proprietà dei file è fondamentale in Linux. Qui spieghiamo i permessi e la proprietà in Linux e li analizziamo entrambi. Iniziamo con la proprietà.
Proprietà dei file Linux
A ogni file e directory del sistema Unix/Linux vengono assegnati tre tipi di proprietario, come indicato di seguito. Il diagramma seguente mostra come viene mappata la proprietà all'utente, al gruppo e agli altri.
Utente
Un utente è il proprietario del file. Per impostazione predefinita, la persona che ha creato un file ne diventa il proprietario. Pertanto, un utente viene talvolta chiamato anche proprietario.
Gruppo
A gruppo di utenti Può contenere più utenti. Tutti gli utenti appartenenti a un gruppo hanno le stesse autorizzazioni di gruppo Linux sul file. Supponiamo di avere un progetto in cui diverse persone necessitano di accedere a un file. Invece di assegnare manualmente le autorizzazioni a ciascun utente, è possibile aggiungere tutti gli utenti a un gruppo e assegnare le autorizzazioni di gruppo al file, in modo che solo i membri di questo gruppo, e nessun altro, possa leggere o modificare i file.
Altro
Qualsiasi altro utente che abbia accesso a un file. Questa persona non ha creato il file né appartiene a un gruppo di utenti che potrebbe possederlo. In pratica, significa chiunque altro. Pertanto, quando si impostano le autorizzazioni per gli altri, si dice anche che si impostano le autorizzazioni per tutti.
Ora sorge la grande domanda: come fa Linux a distinguere tra questi tre tipi di utente in modo che un utente 'A' non possa influenzare un file che contiene informazioni o dati vitali di un altro utente 'B'? È come non volere un collega che lavora sul tuo Computer Linux per visualizzare le tue immagini. È qui che entrano in gioco le autorizzazioni, che definiscono il comportamento dell'utente.
Analizziamo il sistema di permessi su Linux.
Permessi dei file Linux
Ogni file e directory nel tuo sistema Unix/Linux ha le seguenti tre autorizzazioni definite per tutti e tre i proprietari di cui sopra.
- Leggi: Questo permesso ti autorizza ad aprire e leggere un file. Il permesso di lettura su una directory ti consente di elencarne il contenuto.
- Scrivi: Il permesso di scrittura ti autorizza a modificare il contenuto di un file. Il permesso di scrittura su una directory ti autorizza ad aggiungere, rimuovere e rinominare i file memorizzati nella directory. Considera uno scenario in cui hai il permesso di scrittura su un file, ma non sulla directory in cui è memorizzato. Sarai in grado di modificare il contenuto del file, ma non potrai rinominarlo, spostarlo o rimuoverlo dalla directory.
- Esegui: In WindowsUn programma eseguibile ha solitamente l'estensione ".exe", che permette di avviarlo facilmente. Nei sistemi Unix/Linux, non è possibile eseguire un programma se non si dispone dei permessi di esecuzione. Se i permessi di esecuzione non sono impostati, è comunque possibile visualizzare o modificare il codice sorgente del programma (a condizione che siano impostati i permessi di lettura e scrittura), ma non eseguirlo.
Vediamo come funzionano i permessi dei file in Linux con alcuni esempi. Eseguendo il comando `ls -l` nel terminale si ottiene:
ls -l
Lo screenshot qui sotto mostra la stringa di autorizzazione in un lungo elenco.
Qui abbiamo evidenziato '-rw-rw-r–', e questo codice dall'aspetto insolito è quello che ci informa sui permessi Unix concessi al proprietario, al gruppo di utenti e a tutti gli altri utenti.
Qui, il primo trattino (-) indica che abbiamo selezionato un file. L'icona sottostante contrassegna un file normale.
Altrimenti, se si fosse trattato di un elenco, sarebbe stata visualizzata una 'd', come nell'elenco seguente.
I personaggi sono abbastanza facili da ricordare.
- r = permesso di lettura
- w = permesso di scrittura
- x = permesso di esecuzione
- – = nessuna autorizzazione
Analizziamo la situazione in questo modo. La prima parte del codice è 'rw-'. Ciò suggerisce che il proprietario 'Home' può:
- Leggi il file
- Scrivere o modificare il file
Il proprietario non può eseguire il file, poiché il bit di esecuzione è impostato su '-'. L'icona sottostante mostra il bit di esecuzione azzerato e sostituito da un trattino.
Per impostazione predefinita, molte distribuzioni Linux come Fedora, CentOS e Ubuntu Aggiungere un utente a un gruppo con lo stesso nome dell'utente. Quindi, l'utente 'tom' viene aggiunto al gruppo chiamato 'tom'.
La seconda parte è 'rw-'. È destinata al gruppo di utenti 'Home' e i membri del gruppo possono:
- Leggi il file
- Scrivere o modificare il file
La terza parte è per il mondo, ovvero per qualsiasi utente. Dice 'r–'. Ciò significa che l'utente può solo:
- Leggi il file
La seguente suddivisione associa ciascuna parte della stringa di autorizzazione al proprietario, al gruppo e al mondo intero.
Modificare i permessi di file/directory in Linux utilizzando il comando 'chmod'
Supponiamo che tu non voglia che un collega veda le tue immagini personali. Puoi ottenere questo risultato modificando i permessi di accesso ai file.
Possiamo usare il comando 'chmod' command, che sta per 'change mode'. Utilizzando questo comando, possiamo impostare i permessi (lettura, scrittura, esecuzione) su un file o una directory per il proprietario, il gruppo e tutti gli altri utenti.
Sintassi:
chmod permissions filename
Esistono due modi per utilizzare il comando:
- Modalità assoluta
- Modalità simbolica
Modalità assoluta (numerica) in Linux
In questa modalità, i permessi dei file non sono rappresentati da caratteri, bensì da un numero ottale di tre cifre. La tabella seguente riporta i numeri corrispondenti a tutti i tipi di permesso.
| Numero | Tipo di autorizzazione | Simbolo |
|---|---|---|
| 0 | Nessun permesso | - |
| 1 | Eseguire | -X |
| 2 | Scrivi | -w- |
| 3 | Esegui + Scrivi | -wx |
| 4 | Leggi | r- |
| 5 | Leggi + Esegui | rx |
| 6 | Leggere e scrivere | rw |
| 7 | Leggere + Scrivere + Eseguire | rwx |
Vediamo il comando chmod in azione, come mostrato nella finestra del terminale qui sotto.
Nella finestra del terminale qui sopra, abbiamo modificato i permessi del file 'sample' impostandoli su '764'. Il codice assoluto '764' indica quanto segue:
- Il proprietario può leggere, scrivere ed eseguire.
- Il gruppo di utenti può leggere e scrivere.
- Il mondo sa solo leggere.
Questo viene mostrato come '-rwxrw-r–', come nel risultato seguente.
Ecco come modificare i permessi utente di un file in Linux assegnandogli un numero assoluto.
Modalità simbolica in Linux
In modalità assoluta, si modificano i permessi per tutti e tre i proprietari. In modalità simbolica, è possibile modificare i permessi di un proprietario specifico. Utilizza simboli matematici per modificare i permessi dei file Unix.
| Operator | Descrizione |
|---|---|
| + | Aggiunge un'autorizzazione a un file o una directory |
| - | Rimuove l'autorizzazione |
| = | Imposta l'autorizzazione e sovrascrive le autorizzazioni impostate in precedenza. |
I vari proprietari sono rappresentati come segue.
| Utente | Denotazioni |
|---|---|
| u | utente / proprietario |
| g | di gruppo |
| o | Altri |
| a | contro tutti i |
Non useremo permessi espressi in numeri come 755, ma in caratteri come rwx. Osserviamo l'esempio riportato di seguito.
Modifica della proprietà e del gruppo in Linux
Per modificare la proprietà di un file o di una directory, è possibile utilizzare il seguente comando:
chown user filename
Nel caso in cui si desideri modificare sia l'utente che il gruppo per un file o una directory, utilizzare il comando:
chown user:group filename
Vediamolo in azione, come mostrato di seguito.
Nel caso in cui si desideri modificare solo il proprietario del gruppo, utilizzare il comando:
chgrp group_name filename
'chgrp' sta per "change group" (cambia gruppo). Lo screenshot qui sotto mostra il comando chgrp in uso.
Consiglio
- Il file /etc/group contiene tutti i gruppi definiti sul sistema.
- È possibile utilizzare il comando "groups" per trovare tutti i gruppi di cui si è membri, come mostrato di seguito.
- È possibile utilizzare il comando newgrp per lavorare come membro di un gruppo diverso dal gruppo predefinito, come mostrato di seguito.
- Non è possibile che due gruppi siano proprietari dello stesso file.
- In Linux non esistono gruppi annidati. Un gruppo non può essere un sottogruppo di un altro.
- x — l'esecuzione di una directory significa avere il permesso di "entrare" in una directory e ottenere l'eventuale accesso alle sottodirectory.
- Esistono altri permessi che è possibile impostare per file e directory, che verranno trattati in un tutorial avanzato successivo.







.png)
.png)
.png)
.png)
.png)


