Echivalenta permisiunilor fisierelor intre UNIX si Windows

Windows File PermissionsPentru aceia dintre voi care dezvolta sau detin site-uri WordPress pe platforma Windows, este dificil sa obtineti informatii relevante in legatura cu permisiunile fisierelor. Din pacate, realitatea este ca majoritatea serverelor ruleaza pe platforme UNIX sau Linux, iar acestea sunt destul de bine documentate. Noi insine am avut aceste probleme, dat fiind faptul ca am ales sa gazduim site-ul nostru pe aceasta platforma mai putin populara, asa ca ne-am hotarat sa scriem un articol despre asta si astfel sa-i ajutam pe cei care au probleme de genul acesta.

In primul rand sa discutam despre diferentele dintre servere. In general majoritatea site-urilor pe Windows sunt gazduite fie pe servere Apache fie pe Microsoft IIS, acestea operand foarte diferit si folosind metode de livrare a paginilor web usor diferite. Apache ruleaza in general pe computer-ul gazda emuland user-ul sub care a fost instalat, spre deosebire de IIS care este instalat sub un anumit user dar va rula sub IUSR.

In mod implicit, UNIX tinde sa dea acces complet utilizatorului care este detinatorul fisierelor si directoarelor, spre deosebire de Windows care va da acces complet grupului “Everyone”. Primul lucru pe care il face un bun administrator de Windows este sa inlature drepturile acestui grup pentru a imbunatati securitatea.

Alocarea permisiunilor in Windows este destul de usoara, dar poate fi un pic derutanta uneori. Faceti clic dreapta pe folderul sau fisierul caruia doriti sa-i alocati permisiunile, selectati “Properties” apoi “Security” pentru a deschide fereastra de administrare a securitatii. Facand clic pe oricare dintre numele de utilizatori va afisa permisiunile acelui utilizator (in partea de jos a ferestrei). Unele permisiuni s-ar putea sa nu fie disponibile (sunt colorate mai deschis), asta pentru ca utilizatorul cu care sunteti logati nu are destule drepturi pentru a le altera, sau pentru ca permisiunile sunt mostenite de la directorul in care se afla.

 

Schema permisiunilor/drepturilor in Windows

1. Full Control Permite: 1, 2, 3, 4, 5, 6, 7
2. Modify Permite: 2, 3, 4, 5, 6
3. Read & Execute Permite: 3, 4
4. List Folder Contents Permite: 4 (Dar nu poate rula programe)
5. Read Permite: 5 (Implica: 4)
6. Write Permite: 6 (Implica: 4)
7. Special Permissions Permite: Combinatii

Permisiunile din Windows pot fi vazute ca avand proprietati similare cu cele din UNIX  sau Linux, doar ca sunt reprezentate diferit. De exemplu, in UNIX/Linux permisiunile sunt reprezentate ca 644/666 sau 755/777, in loc sa fie reprezentate in termenii din tabelul de mai sus. Asa ca atunci cand vi se cere sa folositi 644, asta inseamna:

Detinatorul acestui fisier poate sa-l citeasca si sa scrie in el.
Detinatorul grupului poate sa citeasca fisierul.
Toti ceilalti pot sa citeasca fisierul.

In Windows grupurile nu sunt folosite iar grupul “Everyone” ar trebuii inlaturat… Aici intervine diferenta dintre Windows si Unix. Tot ceea ce poate fi facut este de a corela drepturile similare. Acesta nu este un ghid exact al permisiunilor NTFS in Windows, dar va va ajuta sa intelegeti cum sa corelati permisiunile din Unix/Linux cu cele din Windows.

Fisierele care sunt plasate in folderul de origine al site-ului (wwwroot sau oricare este numele folderului) ar trebuii sa fie detinute de utilizatorul cu care sunteti logat, dar numai daca nu aveti cont de “Administrator” sau “root”. Aceste conturi nu ar trebuii utilizate in functionarea normala a site-ului.

Asadar, practica recomandata de securitate este ca FISIERELE sa aiba urmatoarele permisiuni:

Owner: Read & Write
Group: Read Only
Others: Read Only

Iar toate DIRECTOARELE/FOLDERELE ar trebuii sa aiba urmatoarele permisiuni:

Owner: Read, Write & Execute
Group: Read & Execute
Others: Read & Execute

Acestea nu sunt cele mai bune masuri de securitate, dar sunt mai degraba o balanta intre securitate, functionalitate si mentenabilitate.

Windows, spre deosebire de UNIX, nu mentine un singur ACL pentru a executa fisierele, ci mai degraba ofera permisiunile “Read & Execute” combinate, fapt care nu implica si “Write”. Dar ACL-ul “Read & Execute” implica totusi “List Folder Contents”. Asadar, daca aveti doar permisiuni pentru scriere si citire pe un director, dar nu si executare, nu veti putea vedea continutul acelui director si cel mai probabil veti avea probleme si cand incercati sa rulati un fisier in browser.

Din pacate o intelegere de baza a sistemului de permisiuni din Unix/Linux este necesara pentru a corela permisiunile cu cele din Windows. Urmatorul tabel ar trebuii sa va ajute:

UNIXWindowsDescriere

7 Modify Read, Write & Execute, ar trebuii sa fiti detinatorul fisierului
6 Read & Write
5 Read & Execute Folosit pentru majoritatea aplicatiilor
4 Read Only Securitatea prin obscuritate nu este o practica buna
3 Write & Execute Nu este disponibil in Windows, decat daca este folosit „Special Permissions”, nu se foloseste in mod normal
2 Write Only Nu este disponibil in Windows, decat daca este folosit „Special Permissions”, nu se foloseste in mod normal
1 Execute Only Nu este disponibil in Windows, decat daca este folosit „Special Permissions”, nu se foloseste in mod normal

Deci ca o comparatie cu modul UNIX, cand este necesar ceva ca 644, ar trebuii sa impartiti acest numar in trei entitati separate:             6 : 4 : 4

Echivalentul acestora in Windows ar trebuii sa arate asa:

Owner (6): Read & Write
Group (4): Read Only
Others (4): Read Only

Desii Windows-ul este usor de folosit, mecanismul permisiunilor este destul de complex si foarte amplu. Speram ca acest exemplu sa va ajute sa corelati permisiunile din Unix/Linux cu cele din Windows si sa eliminati o parte din confuzia echivalentei permisiunilor.

*Denumirile au fost pastrate in engleza pentru o folosire si intelegere mai usoara a acestora. Va recomandam articolul in engleza.

Comentariile sunt inchise.

Comentariile sunt inchise. Daca ai o problema sau nelamurire, te rog foloseste formularul de pe pagina de Contact.