5.2 KiB
Introduzione ai permessi
Ogni file su disco é di proprietá di un utente e di un gruppo di utenti e dispone di tre tipi di autorizzazioni:
- per il proprietario
- per il gruppo che possiede il file
- per gli altri
> ls -l
total 0
drwxrwxr-x 1 dado dado 0 Jan 5 15:49 Desktop
drwxr-xr-x 1 dado dado 12 Jan 3 22:18 Videos
- Il primo carattere,
d
, indica il tipo di file - I successivi tre,
rwx
, i permessi per il proprietario del file (user) - I successivi tre,
rwx
, i permessi per il gruppo che possiede il file (group) - Gli ultimi tre,
r-x
, indicano i permessi per gli altri (others) - La seconda colonna,
1
, indica il numero di hard link che puntano a quel file - La 5a colonna mostra la dimensione del file
- La 6a la data e l'ora dell'ultima modifica del file
Tipi di file
-
: normal filed
: directoryl
: symbolic linkb
: block devicec
: le porte seriali sono esempi comuni di dispositivi a caratteris
: i socket servono come tramite per il passaggio di informazioni tra due programmi
Permessi sui file
r
: read, ha un valore ottale di 4. Indica il permesso di aprire un file e leggerne il contenutow
: write, ha un valore ottale di 2. Indica il permesso di modificare un filex
: execute, con un valore ottale di 1. Permesso di esecuzione del file
Permessi sulle directory
r
: read, ha un valore ottale di 4. Indica il permesso di leggere il contenuto della directory, ma non implica il permesso di leggere i file stessiw
: write, ha un valore ottale di 2. Indica il permesso di creare o eliminare file in una directory o modificarne i nomi, permessi e proprietari. Se un utente ha il permesso di scrittura su una directory, potrá modificare i permessi di qualsiasi file (contenuto) nella directory, anche se appartiene ad un altro utentex
: execute, con un valore ottale di 1. Indica il permesso di entrare in una directory, ma non di elencarne il contenuto (necessaria l'autorizzazioner
).
Modificare i permessi sui file
Si utilizza il comando chmod
. Solo il proprietario di un file o l'utente root possono modificare i permessi di un file. É possibile cambiare i permessi con due modalitá:
- simbolica
- ottale
Quando viene eseguito su una directory, vengono modificati solo i permessi di quella specifica directory. Per la modalitá ricorsiva, aggiungere -R
.
Modalitá simbolica
chmod u[,g,o]+x file
chmod u-r file
chmod u=rwx file
chmod o=rw- file
chmod u+x,g,o+r file
dove:
u
: userg
: groupo
: others+
: concedere un permesso-
: revocare un permesso=
: impostare un set di permessi specificor
ow
ox
: autorizzazione
Modalitá ottale
I permessi sono specificati come valore a tre cifre su notazione ottale. Sono specificati nel seguente ordine: r(4)w(2)x(1). Se non ci sono permessi, si usa il valore 0. Quindi il permesso rwx sarebbe 4+2+1=7. La prima lettera indica l'utente, la seconda il gruppo e la terza tutti gli altri.
Modificare la proprietá di un file
Si usa il comando chown
:
chown USER:GROUP file
Gruppi
Per vedere quali gruppi esistono sul sistema: getent group
. groups user
per sapere a quali gruppi appartiene un utente. Per sapere quali utenti fanno parte di un gruppo si utilizza il comando: groupmems -g group -l
.
Permessi di default
Ogni file o directory che si crea sul filesystem avrá sempre le stesse autorizzazioni. Provengono dalla user mask o umask
, che imposta i permessi predefiniti per ogni file (o directory) creato. Per controllare i valori correnti:
umask -S
u=rwx,g=rwx,o=rx
Permessi speciali
Ogni file puo' avere anche tre permessi speciali.
Sticky Bit
Chiamato anche indicatore di cancellazione ristretta, ha il valore ottale di 1
e in modalitá simbolica viene indicato con una t
all'interno dei permessi degli others (sostituisce la x sui permessi degli altri). Si applica solo alle directory e non ha effetto sui file normali. Impedisce agli utenti di rimuovere o rinominare un file all'interno di quella directory, a meno che non siano proprietari di quel file o directory.
In modalitá ottale i permessi vengono specificati con una notazione a 4 cifre, con la prima che rappresenta il permesso speciale: chmod 1755 directory/
Set GID
Noto anche come SGID, ha il valore ottale di 2
in modalitá simbolica viene indicato con una s
all'interno dei permessi di group (sostituisce la x sui permessi del gruppo). Si applica sia ai file eseguibili che alle directory. Sui file, eseguirá il processo coi privilegi del gruppo che possiede il file. Sulle directory, fa in modo che ogni file o subdirectory erediti il gruppo della directory principale.
chmod 2755 file.sh
chmod g+s file.sh
Set UID
SUID o Set User ID, ha il valore ottale di 4
in modalitá simbolica viene indicato con una s
all'interno dei permessi utente (sostituisce la x sui permessi dell'utente). Si applica solo ai file eseguibili e non ha effetto sulle directory. Sui file, eseguirá il processo coi privilegi dell'utente che possiede il file.
É possibile combinare le autorizzazioni speciali in un unico parametro: chmod 6755 file.sh
.