NOME
chmod − cambia i permessi di accesso di un file
SINTASSI
chmod [opzioni] permessi file...
Opzioni POSIX: [−R] [−−]
Indicazione dei permessi in modalità GNU: [−−reference=rfile]
Opzioni GNU (forma breve): [−cfvR] [−−help] [−−version] [−−]
DESCRIZIONE
chmod cambia i permessi di ogni dato file secondo i permessi dati, i quali possono essere o una rappresentazione simbolica delle modifiche da fare, o un numero ottale che rappresenta il modello dei bit per i nuovi permessi.
Il formato per
un argomento simbolico è
’[ugoa...][[+-=][rwxXstugo...]...][,...]’.
Un tale argomento è formato da un elenco di comandi simbolici separati da virgole. Ciascun argomento simbolico comincia con zero o più lettere fra «ugoa»; queste determinano quale utente vedrà cambiato il suo accesso al file: l’utente proprietario (u), altri utenti nel gruppo del file (g), altri utenti non nel gruppo del file (o) [NdT: other] oppure tutti gli utenti (a) [NdT: all]. Perciò, «a» equivale a «ugo». Se nessuna di queste viene fornita, l’effetto è come se fosse stata data un’«a», ma i bit impostati nella umask non vengono toccati.
L’operatore «+» aggiunge i permessi specificati a quelli già esistenti di ogni file, «-» li rimuove, «=» li imposta come gli unici permessi del file.
Le lettere «rwxXstugo» selezionano i nuovi permessi per gli utenti interessati: leggibile (r) [NdT: readable], scrivibile (w) [NdT: writable], eseguibile (o accessibile per le directory) (x) [NdT: executable], eseguibile solo se il file è una directory o è già eseguibile per alcuni utenti (X); imposta l’user o group ID sull’esecuzione (s), il bit «sticky» (appiccicoso) (t), gli stessi permessi del proprietario del file (u), gli stessi permessi degli altri utenti nel gruppo del file (g), i permessi degli altri utenti che non sono nel gruppo del file (o) (perciò, ’chmod g-s file’ rimuove il bit «set-group-ID» (sgid), ’chmod ug+s file’ imposta sia il bit suid che il bit sgid, mentre ’chmod o+s file’ non fa niente).
Il bit sticky non è descritto in POSIX. Il suo nome deriva dal significato originale: mantieni il testo del programma sul device di swap. Al giorno d’oggi, se impostato per una directory, significa che solo il proprietario del file o della directory può rimuovere il file dalla detta directory (ciò viene solitamente usate in directory come /tmp, scrivibili da chiunque).
Un permesso numerico è dato da una fino a quattro cifre ottali (0-7), ricavate sommando i bit con i valori 4, 2, 1. Le cifre omesse sono condiderate zeri iniziali. La prima cifra seleziona gli attributi set user ID (4), set group ID (2), e sticky (1). La seconda cifra seleziona i permessi per il proprietario del file: lettura (4), scrittura (2) ed esecuzione (1); il terzo i permessi per gli altri utenti nel gruppo del file, con gli stessi valori; il quarto per gli utenti non nel gruppo, con identici valori.
chmod non cambia mai i permessi di un link simbolico, non potendo la chiamata di sistema di chmod cambiare i suoi permessi. Questo non è un problema dal momento che i permessi di un link simbolico non vengono mai usati. Comunque, per ogni link simbolico indicato sulla linea di comando, chmod cambia i permessi del file a cui punta il link. In contrasto, chmod ignora i link simbolici incontrati mentre percorre ricorsivamente le directory.
OPZIONI POSIX
−R |
Cambia ricorsivamente la proprietà delle directory e dei file contenuti. | ||
−− |
Termina l’elenco delle opzioni. |
DESCRIZIONE GNU AGGIUNTIVA
Un’estensione GNU (nuova in fileutils 4.0) permette di utilizzare −−reference=rfile come impostazione dei permessi: sono gli stessi del file di riferimento rfile.
OPZIONI GNU
−c, −−changes
Descrive in dettaglio ogni modifica fatta ai permessi di un file.
−f, −−silent, −−quiet
Non mostra messaggi d’errore sui file i cui permessi non possono essere cambiati.
−v, −−verbose
Descrive in dettaglio le azioni intraprese (o meno) per ogni file.
−R, −−recursive
Cambia ricorsivamente i permessi delle directory e dei file contenuti.
OPZIONI GNU STANDARD
−−help |
Stampa un messaggio di spiegazione sullo standard output ed esce (con successo). |
−−version
Stampa informazioni sulla versione sullo standard output ed esce (con successo).
−− |
Termina l’elenco delle opzioni. |
AMBIENTE
Le variabili LANG, LC_ALL, LC_CTYPE e LC_MESSAGES hanno il solito significato. Per un sistema conforme a XSI: NLSPATH ha il consueto significato.
CONFORME A
POSIX 1003.2 richiede solo l’opzione −R. L’uso delle oltre opzioni potrebbe non essere portatile. Lo standard non descrive il bit di permesso «t». Lo standard non specifica se chmod deve essere coerente azzerando o rifiutandosi di impostare i bit suid e sgid, cioè quando tutti i bit di esecuzioni vengono azzerati, o se addirittura chmod onora i bit «s».
MODI NON STANDARD
Sopra abbiamo descritto l’utilizzo del bit «t» per le directory. Vari sistemi danno un significato speciale a combinazioni di bit di permesso che sarebbero altrimenti prive di senso. In particolare, Linux, aderendo a System V (vedi «System V Interface Definition (SVID) Version 3»), denota col bit sgid di un file senza permessi il locking obbligatorio. Per ulteriori dettagli, si veda /usr/src/linux/Documentation/mandatory.txt.
NOTE
Questa pagina descrive chmod come si trova nel pacchetto fileutils-4.0; altre versioni potrebbero differire leggermente. Spedisci correzioni o aggiunte a aeb [AT] cwi.nl [NdT: ovviamente, problemi nella traduzione devono essere spediti al traduttore, non agli autori]. Segnala bachi nei programmi a fileutils-bugs [AT] gnu.edu.
VEDERE ANCHE
chattr(1), chown(1), install(1), chmod(2), stat(2), umask(2)