Comando chmod
Scopo
Modifica le modalità file.
Sintassi
Per modificare simbolicamente le modalità file
chmod [ -R ] [ -h ]
[ -f
] [ [ u ] [ g ] [ o
] | [ a ]
] { { - | + | = } [ r ] [ w ] [ x ] [ X
] [ s ] [
t ] } { File ... | Indirizzario ... }
Per modificare numericamente le modalità file
chmod [ -R ] [ -h ]
[ -f
] Codice autorizzazione { File ...
| Indirizzario ... }
Descrizione
Il comando chmod modifica i bit modalità e gli ACL estesi degli indirizzari e dei file
specificati.
La modalità può essere definita simbolicamente o numericamente (modalità assoluta).
Quando si individua un collegamento simbolico e non è stato specificato l'indicatore -h, il comando chmod cambia la modalità del file o indirizzario
a cui fa riferimento il collegamento e non la modalità del collegamento stesso. Se si specifica l'indicatore -h,
il comando chmod impedisce la modifica di tale modalità.
Se si specifica sia l'indicatore -h che l'indicatore -R, il comando chmod viene eseguito sugli indirizzari specificati in modo ricorsivo
e, quando viene individuato un collegamento simbolico, la modalità del file o dell'indirizzario a cui fa riferimento
il collegamento non viene modificata.
Indicatori
|
-f |
Evita la visualizzazione di tutte le notifiche errore con l'eccezione delle autorizzazioni non valide e delle
istruzioni di utilizzo. |
|
-h |
Evita la visualizzazione di una modifica modalità per il file o l'indirizzario a cui fa riferimento un collegamento
simbolico individuato.
Nota:
questa funzionalità è lievemente differente da quella dell'indicatore
-h sui comandi chgrp e chown, poiché i bit della modalità non possono essere impostati su collegamenti
simbolici. |
|
-R |
Viene eseguito solo su indirizzari in modo ricorsivo, come specificato dal modello File...|Indirizzario.... L'indicatore -R modifica i bit della modalità file di ogni indirizzario e di tutti i file che corrispondono al
modello specificato. Consultare l'esempio 6.
Quando si individua un collegamento simbolico e un collegamento punta a un
indirizzario, i bit della modalità file di tale indirizzario vengono modificati ma l'indirizzario non viene ulteriormente
passato. |
Modalità simbolica
Per specificare una modalità in formato simbolico, è necessario specificare tre serie di indicatori.
Nota:
non separare gli indicatori con spazi.
La prima serie di indicatori specificare a quale utente vengono concesse o negate le autorizzazioni specificati, nel
seguente modo:
|
u |
Proprietario del file. |
|
g |
Voci ACL estese e gruppo appartenenti al gruppo del file. |
|
o |
Tutti gli altri. |
|
a |
Utente, gruppo e tutti gli altri. L'indicatore a ha lo stesso effetto della specifica
degli indicatori ugo.
Se non si specifica alcuno degli indicatori, il valore predefinito è l'indicatore a e viene applicata la maschera di creazione file (umask). |
La seconda serie di indicatori specifica se è necessario rimuovere le autorizzazioni, applicate o impostate:
|
- |
Rimuove le autorizzazioni specificate. |
|
+ |
Applica le autorizzazioni specificate. |
|
= |
Elimina il campo di autorizzazione selezionato e lo imposta sull'autorizzazione specificata. Se non si specifica
un'autorizzazione dopo =, il comando chmod rimuove tutte le autorizzazioni dal campo selezionato. |
La terza serie di indicatori specifica le autorizzazioni da rimuovere, applicare o impostare:
|
r |
Autorizzazione alla lettura. |
|
w |
Autorizzazione alla scrittura. |
|
x |
Autorizzazione all'esecuzione per i file; autorizzazione alla ricerca di indirizzari. |
|
X |
Autorizzazione all'esecuzione di file se i bit di modalità (non modificati) dispongono di almeno una serie di
bit di esecuzione, gruppo o utente. L'indicatore X viene ignorato se si specifica il parametro File e nessuno dei bit di esecuzione viene impostato nei bit della
modalità corrente.
Autorizzazione alla ricerca di indirizzari. |
|
s |
L'autorizzazione all'impostazione di ID utente sull'esecuzione, se si specifica o si
implica l'indicatore u. L'autorizzazione all'impostazione di ID gruppo sull'esecuzione, se si specifica o si
implica l'indicatore g. |
|
t |
Per indirizzari, indica che solo i proprietari dei file possono collegare o annullare il collegamento di file nell'indirizzario
specificato. Per i file, imposta l'attributo save-text. |
Modalità assoluta o numerica
Il comando chmod consente inoltre di utilizzare una notazione ottale per la modalità. La modalità
numerica è la somma di uno o più dei seguenti valori:
|
4000 |
Imposta l'ID utente durante l'esecuzione. |
|
2000 |
Imposta l'ID gruppo durante l'esecuzione. |
|
1000 |
Imposta l'autorizzazione al collegamento agli indirizzari o imposta l'attributo save-text per i file. |
|
0400 |
Consente la lettura da parte del proprietario. |
|
0200 |
Consente la scrittura da parte del proprietario. |
|
0100 |
Consente l'esecuzione o la ricerca da parte del proprietario. |
|
0040 |
Consente la lettura da parte del gruppo. |
|
0020 |
Consente la scrittura da parte del gruppo. |
|
0010 |
Consente l'esecuzione o la ricerca da parte del gruppo. |
|
0004 |
Consente la lettura da parte di altri utenti. |
|
0002 |
Consente la scrittura da parte di altri utenti. |
|
0001 |
Consente l'esecuzione o la ricerca da parte di altri utenti. |
Note:
- La specifica della modalità disabilita automaticamente qualsiasi ACL esteso.
- La modifica delle autorizzazioni di accesso al gruppo influenza simbolicamente anche le voci di ACL esteso. Alle voci di
gruppo nell'ACL che sono uguali al gruppo di proprietà del file viene negata l'autorizzazione rimossa dalla modalità.
- E' possibile specificare più modalità simboliche separate da virgole. Le operazioni vengono eseguite nell'ordine in cui
vengono visualizzate da sinistra a destra.
- E' necessario specificare la modalità simbolicamente o utilizzare un ottale di 4 caratteri esplicito con uno zero
iniziale (ad esempio, 0755) quando si rimuove l'autorizzazione all'impostazione dell'ID gruppo durante l'esecuzione dagli
indirizzari.
Sicurezza
Access Control: installare questo programma come normale programma utente nel
Trusted Computing Base.
Solo il proprietario del file o l'utente root può modificare la modalità di un file.
Stato di uscita
Questo comando restituisce i seguenti valori di uscita:
|
0 |
Il comando è stato eseguito correttamente e sono state apportate tutte le modifiche richieste. |
|
>0 |
Si è verificato un errore. |
Esempi
- Per aggiungere un tipo di autorizzazione a numerosi file:
chmod g+w chap1 chap2
In questo modo viene aggiunta l'autorizzazione alla scrittura per membri del gruppo nei file chap1 e chap2.
- Per eseguire numerose modifiche di autorizzazione contemporaneamente:
chmod go-w+x mydir
In questo modo si nega ai membri del gruppo e ad altri utenti l'autorizzazione alla creazione o all'eliminazione dei
file in mydir (go-w) e consente ai membri del gruppo e agli altri utenti
di ricercare mydir o di utilizzarlo in un nome percorso (go+x). Questo è equivalente
alla sequenza di comandi:
chmod g-w mydir
chmod o-w mydir
chmod g+x mydir
chmod o+x mydir
- Per consentire solo al proprietario di utilizzare una procedura shell come comando:
chmod u=rwx,go= cmd
In questo modo viene fornita autorizzazione alla lettura, scrittura ed esecuzione
all'utente proprietario del file (u=rwx). Viene inoltre negata al gruppo e agli altri
l'autorizzazione per accedere a cmd in qualsiasi modo (go=).
Se si dispone dell'autorizzazione
all'esecuzione del file del comando di shell,
cmd, è possibile eseguirlo immettendo:
cmd
Nota:
a seconda
della variabile di shell PATH, è possibile che sia necessario specificare il percorso completo al file
cmd.
- Per utilizzare le modalità di impostazione ID:
chmod ug+s cmd
Quando viene eseguito il comando
cmd, gli ID utente e gruppo effettivi vengono impostati sui proprietari del file cmd. Vengono modificati
solo gli ID effettivi associati al processo secondario che esegue il comando
cmd. Gli ID effettivi della sessione shell rimangono invariati.
Tale funzione consente di assegnare l'accesso
ai file limitati.
Si supponga che il programma cmd abbia la modalità di impostazione ID utente abilitata e
sia di proprietà di un utente denominato dbms.
L'utente dbms non è effettivamente una persona, ma può essere associato a un sistema di
gestione database. L'utente betty non dispone dell'autorizzazione per accedere ad alcun file di dati dbms. Tuttavia, tale utente dispone dell'autorizzazione all'esecuzione del comando cmd. Quando effettua tale operazione, il relativo ID utente effettivo viene temporaneamente
modificato in dbms, in modo che il programma cmd possa accedere ai file di dati di proprietà dell'utente
dbms.
In questo modo, l'utente betty può utilizzare il comando cmd per accedere ai file di dati, ma non può danneggiarli
accidentalmente con i comandi shell standard.
- Per utilizzare il formato della modalità assoluta del comando chmod:
chmod 644 text
In questo modo viene impostata l'autorizzazione alla scrittura e alla lettura per il proprietario
e la modalità di sola lettura per il gruppo e per altri utenti. In questo modo vengono rimossi tutti gli ACL estesi
che potrebbero essere associati al file.
- Per creare degli indirizzari in modo ricorsivo e modificare le autorizzazioni di modifica indirizzario e file,
fornita la struttura ad albero:
./dir1/dir2/file1
./dir1/dir2/file2
./dir1/file1
immettere questa sequenza di comandi:
chmod -R 777 f*
consentirà di modificare le autorizzazioni in ./dir1/file1.
Ma, fornita la struttura ad albero di:
./dir1/fdir2/file1
./dir1/fdir2/file2
./dir1/file3
la sequenza di comandi:
chmod -R 777 f*
modificherà le autorizzazioni in:
./dir1/fdir2
./dir1/fdir2/file1
./dir1/fdir2/file2
./dir1/file3
File
|
/usr/bin/chmod |
Contiene il comando chmod. |