chmod

Chmod

Descrizione dell'immagine Chmod-GNU.png. Informazione
Prima versione 3 novembre 1971
genere Utilità UNIX ( d )

chmod (abbreviazione di ch ange mod e ) è una chiamata di sistema di UNIX ( POSIX standard ) e il comando corrispondente per modificare i permessi di un file o di una directory .

Storia

Questo comando è apparso per la prima volta in AT&T UNIX versione 1.

Autorizzazione a modificare i diritti

Un utente ha il diritto di chmod un file:

uso

Le opzioni passate al comando chmod sono indicate in questo modo:

chmod options modes fichiers

Per un file: chmod [u g o a] [+ - =] [r w x] nom_du_fichier

Per i contenuti di una directory (ricorsivamente): chmod -R [u g o a] [+ - =] [r w x] nom_du_répertoire

Opzioni

chmodha una serie di opzioni che possono modificare il risultato. Alcune di queste opzioni sono:

Modalità

Per ogni dato file, i permessi si applicano al proprietario del file (codice "u" come utente ), al gruppo utenti del file ("g" come gruppo ) o ad altri utenti ("o" come gli altri ). Per applicare le modifiche a tutto in una volta, utilizziamo il codice "a" come tutti  :

Le modalità possono essere specificate in due modi, con lettere o con numeri ottali . Per le lettere, ci sono gli operatori di modifica dello stato +e -per aggiungere o rimuovere un tipo di diritto ai diritti correnti e l'operatore =per sovrascriverli. Per l'ottale, devi aggiungere i numeri per ogni tipo di proprietario.

I permessi sono (valori ottali tra parentesi):

Corrispondenza sulla rappresentanza dei diritti
Diritto Valore alfanumerico Valore ottale Valore binario
nessun diritto --- 0 000
solo esecuzione --x 1 001
solo scrittura -w- 2 010
scrivere e recitare -wx 3 011
sola lettura r-- 4 100
leggere ed eseguire r-x 5 101
leggendo e scrivendo rw- 6 110
tutti i diritti (lettura, scrittura ed esecuzione) rwx 7 111

Esempi

Modalità speciali

Ci sono tre modalità speciali comunemente usate: lo sticky bit (indicato con t) e i bit SETUID e SETGID (indicato con s).

Altro chmod

Funzione C

chmod

chmod esiste nel C standard di libreria . Ha la stessa funzione del comando Unix.

int chmod(const char *path, int amode) ;

O :

  • path è il nome del file da modificare.
  • amode è il nuovo attributo da inserire nel file.
  • chmod restituisce il valore 0 (operazione riuscita) o -1 (errore).
fchmod int fchmod(int descripteur du fichier, mode_t mode)

La differenza tra chmod e fchmod è che chmod prende il percorso del file come argomento (che è leggibile dall'uomo, esempio: /tmp/toto.txt ), mentre fchmod accetta il descrittore di file come argomento.

Funzione Perl

chmod esiste nelle librerie Perl per modificare i permessi di un elenco di file. Il secondo parametro deve essere il valore ottale. La funzione restituisce il numero di file assegnati con successo.

$cnt = chmod 0644, 'fichier1', 'fichier2'; $cnt = chmod 0644, @liste;

Funzione PHP

chmod esiste nella libreria PHP standard . Ha la stessa funzione del comando Unix e gli stessi parametri della funzione C.

Microsoft cacls e attrib

In MS-DOS e Windows , l'utilità attribconsente di modificare alcuni attributi (lettura, scrittura, nascosto, sistema) dei file, non collegati al proprietario.

In Windows NT , caclsè l'utilità della riga di comando più completa equivalente a chmode chown .

Note e riferimenti

  1. (in) "  Libreria interfaccia POSIX: liboskit_posix.a  " .

Vedi anche

link esterno