chmod
Schimba permisiunile de acces, schimba modul.

Sintaxa
chmod [optiune]… Mode [,Mode]… fisier…

chmod [optiune]… Numeric_Mode fisier…

chmod [optiune]… –reference=RFile fisier…

Optiuni
-f, –silent, –quiet suprima cele mai multe mesaje de eroare
-v, –verbose afiseaza un diagnostic pentru fiecare fisier procesat
-c, –changes la fel ca si verbose, dar reporteaza doar cand sunt efectuate schimbari
–reference=RFile foloseste modul RFile’s in loc de valorile MODE
-R, –recursive schimba fisiere si directoare recursiv
–help afiseaza manualul de ajutor
–version afiseaza informatii despre versiune
chmod schimba permisiunile pentru fiecare fisier dat potrivit mode, unde mode descrie permisiuniea ce urmeaza a fi modificata.
Mode poate fi specificat cu numere octale sau cu litere. Folosind litere este mai usor de inteles pentru majoritatea.

Mod numeric:

Intre 1 si 4 cifre octale:
Orice cifre omise sunt presupuse a fi zero.

Prima cifra = selecteaza atribute pentru user ID (4) si pentru group ID (2) si salveaza imaginea text (1)s
A doua cifra = permisiuni pentru utilizatori ce detin fisiere: read (4), write (2), si execute (1)
A treia cifra = permisiuni pentru alti utilizatori in grupul de fisiere: read (4), write (2), si execute (1)
A patra cifra = permisiuni pentru utilizatori ce nu sint in grupul de fisiere: read (4), write (2), si execute (1)

Valoarea octala (0-7) este calculata plusand valori pentru fiecare cifra.

User (rwx) = 4+2+1 = 7
Group(rx) = 4+1 = 5
World (rx) = 4+1 = 5
chmode mode = 0755

Exemple

chmod 400 file – Poate fi citit de catre owner
chmod 040 file – Poate fi citit de catre grup
chmod 004 file – Poate fi citit de catre altii

chmod 200 file – Poate fi scris de catre owner
chmod 020 file – Poate fi scris de catre grup
chmod 002 file – Poate fi scris de catre altii

chmod 100 file – Poate fi executat de catre owner
chmod 010 file – Poate fi executat de catre grup
chmod 001 file – Poate fi executat de catre altii

Pentru a le combina, trebuie alaturate numerele:

chmod 444 file – Permite a fi citit de catre owner, grup si altii
chmod 777 file – Permite tuturor sa citeasca, scrie si sa execute fisierul

Modul simbolic
Formatul unui mod simbolic este o combinatie de litere +-= rwxXstugoa
Pot fi date mai multe operatii simbolice separate prin virgula.
Sintaxa completa este [ugoa…][[+-=][rwxXstugo…]…][,…] dar este explicata mai jos.

O combinatie de litere ugoa controleaza care useri sa acceseze fisierul ce va fi schimbat:

u – utilizatorul ce detine fisierul
g – alti utilizatori din grupul de fisiere
o – alti utilizatori
a – toti utilizatorii

Daca nu este specificat nici unul, efectul este ca si cum ar fi dat, dar partile setate in umask nu sunt afectate.

Totu utilizatorii sunt user + group + others (utilizator + grup + altii)
Operandul ‘ + ‘, adauga permisiunea selectata permisiunilor deja existente fiecarui fisier; ‘ – ‘ le sterge iar ‘ = ‘ cauzeaza permisiunile sa fie setate la cele deja existente.

Literele ‘rwxXstugo’ selecteaza permisiuni noi pentru fiecare din userii afectati:

Litera – Permisiune
r – read (citeste)
w – write (scrie)
x – execute (executa sau acceseaza directoare)
s – seteaza un utilizator sau un grup la executare
t – salveaza textul programului pe dispozitivul de swap
u – permisiunile pe care le are userul si fisierul pentru care le are
g – la fel, pentru grup
o – la fel, pentru altii

Exemple:
Interzicerea tuturor permisiunii de a executa:

chmod a-x fisier

Permite a fi citit de catre toti:
chmod a+r fisier

Facem un fisier sa poata fi citit si scris de catre grup si altii:
chmod go+rw file

Facem un script shell sa fie executabil de care user / owner:
$ chmod u+x scriptul_meu.sh

Si asa mai departe, sper ca ati prins ideea.

Nota
Cand chmod este aplicat directoarelor se permite:
read – afisarea fisierelor din director
write – adaugarea de fisiere noi in director
exectue – accesarea fisierelor din director