Chmod
Da Wikipedia, l'enciclopedia libera.
chmod (da change mode) è un comando della shell negli ambienti di tipo UNIX.
Quando viene eseguito, il comando cambia modalità di file e cartelle, dove per modalità si intende i permessi e modi speciali.
Indice |
[modifica] Storia
Il comando chmod è apparso per la prima volta nella prima versione Unix di AT&T e viene tutt'oggi usato nelle macchine UNIX-like.
[modifica] Uso
Le opzioni del comando chmod vengono specificate in questo modo:
chmod modificatori modalità file
[modifica] Modificatori
chmod
ha delle opzioni (dette anche "modificatori") che possono modificare l'output. Tra i più importanti citiamo:
-R
: cambia i modi delle cartelle e del loro contenuto in modo ricorsivo-h
: se il file richiesto è un link simbolico, cambia i modi del symlink stesso piuttosto di quelli del file al quale il link punta.-v
: verbose, elenca tutti i file che vengono processati
[modifica] Modi
Esistono permessi e modi speciali. I permessi sono:
- r - lettura (Read)
- w - scrittura (Write)
- x - esecuzione (eXecute)
Nota: le directory hanno bisogno del permesso di esecuzione per far sì che i suoi contenuti siano accessibili. Se invece l'esecuzione è attiva ma la lettura no, verrà attivata la modalità "alla cieca": il contenuto della directory non potrà essere elencato, ma sarà possibile accedere ad un file o ad una sotto directory se si conosce il suo nome (come per i web server come Apache quando è disattivato l' AutoIndex.)
Per ogni file sono specificati quali permessi applicare al proprietario di quel file, agli utenti del gruppo e a tutti gli altri:
- u - proprietario
- g - utenti del gruppo
- o - tutti gli altri utenti
I modi possono essere specificati in due modi, con caratteri o con numeri ottali, Per i caratteri, esistono degli operatori:
- + aggiunge il modo
- = imposta il modo
- - rimuove il modo
[modifica] Esempi
- +r aggiunge la lettura per tutti
- -x rimuove il permesso di esecuzione per tutti
- u=rw,go= consente la lettura e la scrittura al proprietario, pulisce tutti i permessi per il gruppo e gli altri
[modifica] Modi speciali
Esistono anche tre modi speciali: sticky bit, SUID bit e SGID bit.
- sticky bit
- Se applicato ad una directory, ogni file in essa contenuto può essere modificato o cancellato solo dal rispettivo proprietario, o dal proprietario della cartella o da root. Se non attivo, tutti gli utenti con accesso in scrittura alla cartella possono modificare e cancellare file, indipendentemente da chi ne sia il proprietario. Questo bit è comunemente applicato a directory come /tmp, che devono essere accessibili in scrittura da tutti gli utenti, ma deve essere ugualmente impedita l'interferenza fra i diversi utenti.
- SGID (set Group Identifier) bit
- Se applicato ad una directory, i file in essa creati appartengono al gruppo del proprietario della directory, piuttosto che al gruppo di default dell'utente che li crea; se applicato ad un file, quando eseguito esso gira con i permessi del gruppo del proprietario del file, piuttosto che con quelli del gruppo dell'utente che lo sta eseguendo. Questo bit risulta utile se applicato ad una directory nella quale lavora un gruppo di diversi utenti: tutti i file in essa creati avranno il GID del gruppo, anziché quelli dei gruppi di default di ogni singolo utente (che sono potenzialmente diversi l'uno dall'altro).
- SUID (set User Identifier) bit
- Se applicato ad una directory, i file in essa creati appartengono al proprietario della directory, piuttosto che all'utente che li crea; se applicato ad un file, quando eseguito esso gira con i permessi del proprietario del file, piuttosto che con quelli dell'utente che lo sta eseguendo. Questa funzionalità è utile per permettere delle operazioni eccezionali, che richiedono i privilegi di root, ai comuni utenti di un sistema (come cambiare la propria password o fare un ping): contemporaneamente, però, comporta dei rischi per la sicurezza se usata in maniera inappropriata.
[modifica] Valori in ottale
Al posto dei caratteri, puoi usare questi numeri per impostare i permessi:
- 1 = abilita esecuzione
- 2 = abilita scrittura
- 4 = abilita lettura
Anche i modi speciali sono indicabili in cifre:
- 1 = sticky bit attivato
- 2 = SGID bit attivato
- 4 = SUID bit attivato
Per determinare la cifra ottale che indica uno specifico permesso per un file o directory, si sommano le cifre associate ai permessi attivati per il file: in questo modo, ad esempio, uno 0 indica un file non leggibile, non modificabile e non eseguibile, un 5 indica un file leggibile ed eseguibile, ma non modificabile, mentre un 7 indica che sul file sono permesse tutte le operazioni.
Con il comando chmod puoi usare da uno a quattro cifre ottali: la prima indica i modi speciali, la seconda imposta i permessi per il proprietario, la terza per il gruppo e l'ultima per tutti gli altri. Se si omettono delle cifre, esse vengono interpretate come zeri iniziali.
[modifica] Esempi
chmod 0777 cartella chmod 0766 file.txt
Il primo esempio rende la cartella accessibile e scrivibile a tutti; il secondo garantisce invece accesso completo al proprietario e lettura+scrittura agli altri.
[modifica] Voci correlate
- chown - Comando Unix per la modifica del proprietario di un file o di una directory
- chgrp - Comando Unix per la modifica del gruppo di un file o di una directory
- UID, che sta per User Identifier
- GID, che sta per Group Identifier
[modifica] Collegamenti esterni
- (EN) NeoSmart's CHMOD-Win, applicazione gratuita che converte i comandi chmod in impostazioni interpretabili dai sistemi Windows.
- (EN) Manuale di chmod per FreeBSD
- (EN) Manuale di chmod GNU
- (EN) Manuale di chmod per Solaris 9
- (EN) Manuale di chmod per Mac OS X, che supporta anche le liste di controllo degli accessi.
![]() |
|||||||
---|---|---|---|---|---|---|---|
Progetto Informatica | Portale Informatica | BarCode | |||||
Categorie principali
|