Dopo aver ottenuto la risposta alla mia domanda qui e aver fatto qualche ricerca sul risultato, ho trovato un articolo che spiega tutto molto bene. Vorrei condividere alcune parti di questo articolo qui per riferimenti futuri.
Visualizzazione delle autorizzazioni
Per poter utilizzare le chmod
autorizzazioni per modificare un file o una directory, è necessario innanzitutto conoscere la modalità di accesso corrente. È possibile visualizzare il contenuto di una directory nel terminale da cd
quella directory e quindi utilizzare:
$ ls -l
Il -l
passaggio è importante perché l'utilizzo ls
senza di esso mostrerà solo i nomi di file o cartelle nella directory.
Di seguito è riportato un esempio di utilizzo ls -l
nella mia home directory:
total 128
drwxr-xr-x 2 peter users 4096 Jul 5 21:03 Desktop
drwxr-xr-x 6 peter users 4096 Jul 5 17:37 Documents
drwxr-xr-x 2 peter users 4096 Jul 5 13:45 Downloads
drwxr-xr-x 2 peter users 4096 Jun 24 03:36 Movies
drwxr-xr-x 2 peter users 4096 Jun 24 03:38 Music
drwxr-xr-x 2 peter users 4096 Jun 26 00:09 Pictures
-rw-r--r-- 1 peter users 354 Jul 6 17:15 chmodtest
Cosa significano le colonne
La prima colonna è il tipo di ciascun file:
-
indica un file normale.
d
indica una directory, ovvero una cartella contenente altri file o cartelle.
p
indica una pipa denominata (aka FIFO).
l
indica un collegamento simbolico.
Le lettere successive sono le autorizzazioni, questa prima colonna è ciò di cui saremo maggiormente interessati. La seconda è il numero di collegamenti presenti in un file, che possiamo tranquillamente ignorare. La terza colonna ha due valori / nomi: la prima (nel mio esempio 'peter') è il nome dell'utente proprietario del file. Il secondo valore ("utenti" nell'esempio) è il gruppo a cui appartiene il proprietario (Altre informazioni sui gruppi).
La colonna successiva è la dimensione del file o della directory in byte e le informazioni successive sono le date e le ore in cui il file o la directory sono stati modificati l'ultima volta, e ovviamente il nome del file o della directory.
Cosa significano le autorizzazioni
Le prime tre lettere, dopo la prima -
o d
, sono le autorizzazioni del proprietario. Le tre lettere successive sono autorizzazioni che si applicano al gruppo. Le ultime tre lettere sono le autorizzazioni che si applicano a tutti gli altri.
Ogni set di tre lettere è composto da r
w
e x
. r
è sempre in prima posizione, w
è sempre in seconda posizione ed x
è sempre in terza posizione. r
è l'autorizzazione di lettura, w
è l'autorizzazione di scrittura ed x
è l'autorizzazione di esecuzione. Se c'è un trattino ( -
) al posto di una di queste lettere significa che l'autorizzazione non è concessa, e se la lettera è presente, allora è concessa.
Cartelle
Nel caso di cartelle, i bit di modalità possono essere interpretati come segue:
r
(leggi) rappresenta la capacità di leggere il sommario della directory data,
w
(write) indica la possibilità di scrivere il sommario di una determinata directory (creare nuovi file, cartelle; rinominare, eliminare file esistenti, cartelle) se e solo se è impostato il bit di esecuzione. Altrimenti, questa autorizzazione non ha senso.
x
(esegui) indica la possibilità di accedere alla directory specificata con il comando cd e accedere ai file e alle cartelle in quella directory.
Modifica delle autorizzazioni utilizzando il comando chmod
chmod
è un comando in Linux e altri sistemi operativi simili a Unix. Ti consente di modificare le autorizzazioni (o la modalità di accesso) di un file o di una directory.
È possibile modificare le autorizzazioni in due modi diversi: - Basato sul testo - Basato sul chmod
numerochmod
Metodo di testo
Per modificare le autorizzazioni o la modalità di accesso di un file, utilizziamo il comando chmod in un terminale. Di seguito è riportata la struttura generale del comando:
chmod who=permissions filename
Where Who is any da un intervallo di lettere e ognuno indica a chi concederai il permesso. Sono i seguenti:
u - The user that owns the file.
g - The group the file belongs to.
o - The other users i.e. everyone else.
a - all of the above - use this instead of having to type ugo.
Le autorizzazioni sono gli stessi già discusso ( r
, w
e x
).
Il comando chmod ci consente di aggiungere e sottrarre autorizzazioni da un set esistente usando + o - invece di =. Questo è diverso dai comandi precedenti, che essenzialmente riscrivono le autorizzazioni (ad esempio, per modificare un'autorizzazione da r--
a rw-
, è comunque necessario includere r
oltre che w
dopo =
il chmod
comando. Se si è perso r
, si eliminerebbe l' r
autorizzazione come vengono riscritti con il =. Usando + e - evitatelo aggiungendo o togliendo l'attuale serie di autorizzazioni).
Metodo numerico
chmod
può anche impostare autorizzazioni usando i numeri.
L'uso dei numeri è un altro metodo che consente di modificare le autorizzazioni per tutti e tre i proprietari, i gruppi e gli altri contemporaneamente. Questa struttura di base del codice è questa:
chmod xxx file/directory
Dove xxx è un numero di 3 cifre in cui ogni cifra può essere compresa tra 1 e 7. La prima cifra si applica alle autorizzazioni per il proprietario, la seconda cifra si applica alle autorizzazioni per il gruppo e la terza cifra si applica alle autorizzazioni per tutti gli altri.
In questa notazione numerica, i valori r, w e x hanno il proprio valore numerico:
r=4
w=2
x=1
Per trovare un numero di tre cifre è necessario considerare quali autorizzazioni si desidera disporre di un proprietario, un gruppo e un utente, quindi sommare i loro valori. Ad esempio, supponiamo che volessi concedere al proprietario di una directory le autorizzazioni di lettura-scrittura ed esecuzione e che volessi raggruppare e tutti gli altri che avessero appena letto ed eseguito le autorizzazioni. Vorrei inventare i valori numerici in questo modo:
Owner: rwx = 4+2+1=7
Group: r-x = 4+0+1=5 (or just 4+1=5)
Other: r-x = 4+0+1=5 (or just 4+1=5)
Final number = 755
$ chmod 755 filename
Questo è l'equivalente dell'uso di quanto segue:
chmod u=rwx filename
chmod go=rx filename
La maggior parte delle cartelle / directory è impostata su 755 per consentire la lettura, la scrittura e l'esecuzione per il proprietario, ma nega la scrittura a tutti gli altri, e i file sono normalmente 644 per consentire la lettura e la scrittura per il proprietario, ma solo la lettura per tutti gli altri, fare riferimento all'ultimo nota la mancanza di permessi x con file non eseguibili - qui è lo stesso affare.