Drepturi de acces sub linux

In Linux fiecare fisier are drepturi de acces bine stabilite. Aceste drepturi se refera la posibilitate de a fi citit, scris sau executat de diferite categorii de utilizatori (Owner, Group si Others)

Drepturile asupra unui fisier pot fi reprezentate prin literele r (read), w (write), x (execute), in aceasta ordine. De exemplu r-x inseamna o permisiune de citire, executare, dar nu de scriere asupra fisierului, iar –x inseama o permisiune de executare, si nu de scriere sau citire.

In cazul comenzii ls, drepturile de acces asupra fisierelor apar in forma -rw-r-xr– . Aceastra forma se citeste astfel: primul caracter arata daca itemul este un fisier (“-”), director(“d”) sau link(“l”). Urmeaza apoi 9 caractere care se impart in trei grupuri de cate trei caractere: rw- pentru owner, r-x pentru grup si r– pentru others.Acestea reprezinta drepturile de acces. In destule cazuri, drepturile de acces apar sub forma a trei cifre (octal), de genul 644(forma numerica). Daca un fisier are drepturi de acces 644, aceasta inseamna ca are drepturi de scriere si citire pentru owner si doar de citire pentru group si others. La forma numerica se poate ajunge notand drepturile de scriere in binar, pe trei biti ( 1 daca dreptul exista, 0 daca nu: rwx 111, -wx 011,-w- 010, – - – 000

Owner Group Others  
rw- r- - r- - Drepturi de acces in forma literala
110 100 100 Conversia lor in binar
6 4 4 Drepturile de acces in forma numerica

Schimbarea drepturilor de acces se face cu ajutorul comenzii chmod. Aceasta se poate utiliza cu cele doua modalitati de reprezentare a drepturilor de acces: numeric si literal. Un exemplu de utilizare in mod numeric este:

chmod 755 nume_fisier

Pentru utilizare in forma literala structura comenzii este: chmod [ugoa...][[+-=][rwxXstugo...]…][,...] nume_fisier. O combinatie de litere din ‘ugoa‘ controleaza care dintre utilizatori au acces la respectivul fisier: utilizatorul care detine fisierul (owner) prin “u“, alti utilizatori prin grupul fisierului (group) prin “g“, alti utilizatori care nu fac parte din grupul fisierului (others) prin “o” sau toti utilizatorii (all) prin “a“. Operatorul “+” face ca permisiunea selectata sa fie adaugata utilizatorului specificat, operatorul “-” face ca permisiunea sa fie scoasa, iar operatorul “=” face ca permisiunea sa fie singura pe care o apre fisierul. Un exemplu de utilizare este:

chmod u+r,g-w,o-x nume_fisier

Ownerul si grupul din care face parte un fisier pot fi schimbate cu ajutorul comenzii:

chown nume_utilizator nume_fisier

chgrp nume_grup nume_fisier

Suid

Cand unui executabil ii este atribuit acest atribut, user normali pot rula acel executabil cu privilegiile ownerului acela fiind in cele mai multe cazuri root. Un exemplu pentru a arata acest lucru

ls -lh /bin/ping
-rwxr-xr-x 1 root root 31K 2007-05-13 09:09 /bin/ping

ping 127.0.0.1
ping: icmp open socket: Operation not permitted

chmod +s /bin/ping
ls -lh /bin/ping
-rwsr-sr-x 1 root root 31K 2007-05-13 09:09 /bin/ping

ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.028 ms

Did you enjoy this post? Why not leave a comment below and continue the conversation, or subscribe to my feed and get articles like this delivered automatically to your feed reader.

Comments

Mersi pentru acest tutorial

Leave a comment

(required)

(required)