Chmod

Identificazione del tipo di file
quando eseguiamo un #ls -l il primo carattere mostrato identifica il tipo si file

b – block device (es hard disk)
c – character device (file che interpreta caratteri)
p – pipe device (mezzo di interscambio di informazione)
d – directory
l – link
– regular file (contiene informazioni)

poi abbiamo i nove caratteri che identificano i permessi

poi abbiamo le informazioni deguenti:
dimensione
proprietario
gruppo

major cioè definisce il tipo di device es. (3 definisce le console)
minor è il sottogruppo del tipo definito dal major ed è anche incrementale es.(0 indica la tty0)


Permessi sui file:

USR GRUP OTHR
1 234 567 8910 – CHI HA CREATO IL FILE – GRUPPO DI RIFERIMENTO
r   r   r      diritto di lettura
w   w   w     diritti di scrittura
x   x   x    diritto di esecuzione

Proviamo a creare un file
touch stefano
appena creato di default ha i permessi 644

andiamo a vederne i permessi
ls -l

CAMBIAMO I PERMESSI DEI FILE
chmod

vediamo i valori:
4 Read
2 Write
1 Execute

esempio:
UTENTE vogliamo dare W e R = 2 + 4 = 6
GRUPPO vogliamo dare R e X = 4 + 1 = 5
OTHER  vogliamo dare nulla        = 0

quindi cambiamo i permessi in
chmod 650 nomefile

Altro modo possiamo cambiare i permessi in questo modo:
U tente
G ruppo
O thers
A ll

quindi possiamo dare il seguente comando
per aggiungere EXECUTE per l’utente:
chmod u+x nomefile

per dare permessi a tutti di tutto
chmod a+wrx nomefile

in altro modo
chmod +x nomefile

Come cambiare il proprietario del file
‘chown’ ‘nuovo proprietario’ ‘nomefile’
chown utente nomefile

Per cambiare il Gruppo:
chgrp

 

Con chmod come faccio a dare i permessi diversi a cartelle e files? Per esempio ho la cartella www con dentro tutto il sito web, dovrei mettere i permessi a 775.

find /cartella/di/partenza -type d -exec chmod 775 {} \;
find /cartella/di/partenza -type f -exec chmod 664 {} \;

-find lo usi per cercare i file appunto 😛 se gli passi il -type puoi filtrare solo una tiologia di file (  f per i file semplici d per directory l per i link simbolici e così via ) con il parametro -exec puoi specificare un comando da eseguire con il paratro {}; che indica il risultato della ricerc

Quando la tua ricerca ottiene la corrispondenza esatta, combinala con altri comandi per eseguire azioni specifiche. Puoi combinare il comando find con altri comandi così che, una volta individuato il file in oggetto, vengano compiute azioni specifiche. Per separare il comando find dal secondo comando, utilizza il parametro -exec, quindi termina la stringa con la sequenza di caratteri {} \;.

find ./ -type f -perm 777 -exec chmod 755 {} \;
  • Questo comando di esempio esegue una ricerca di tutti i file presenti nella directory corrente (incluse tutte le sottocartelle) che hanno un permesso di accesso 777. Quindi, per ognuno dei file individuati, verrà eseguito il comando chmod per impostare il nuovo codice di accesso in 755.