Pe un server Linux folosit de mai multe persoane, una dintre cele mai importante reguli este să nu dai acces „la grămadă”. Dacă mai mulți colegi trebuie să lucreze în același folder de proiect, soluția corectă nu este să pui totul pe 777, ci să folosești grupuri Linux, proprietari corecți și permisiuni clare.
Scopul este simplu: utilizatorii care fac parte din proiect trebuie să poată citi și modifica fișierele din acel folder, iar restul utilizatorilor de pe server să nu aibă acces inutil.
Situația practică
Să presupunem că ai un proiect în:
/var/www/proiect1
și trei utilizatori care trebuie să lucreze acolo:
ionmariaalex
Vrei ca ei să poată crea, modifica și șterge fișiere în folderul proiectului, fără să le dai acces administrativ pe tot serverul.
Pasul 1: creează grupul proiectului
Mai întâi creezi un grup dedicat:
sudo groupadd proiect1
Verifici că grupul există:
getent group proiect1
Este o idee bună să creezi câte un grup separat pentru fiecare proiect, nu un grup generic pentru toate site-urile sau toate aplicațiile.
Pasul 2: adaugă utilizatorii în grup
Acum adaugi utilizatorii care trebuie să lucreze în proiect:
sudo usermod -aG proiect1 ion
sudo usermod -aG proiect1 maria
sudo usermod -aG proiect1 alex
Verifici:
groups ion
groups maria
groups alex
Atenție la opțiunea -aG. Dacă uiți -a și folosești doar -G, poți scoate utilizatorul din alte grupuri existente.
După adăugare, utilizatorul trebuie uneori să se reconecteze ca să își încarce noua apartenență la grup.
Pasul 3: setează grupul pe folderul proiectului
Acum trebuie ca folderul proiectului să aparțină grupului proiect1:
sudo chown -R root:proiect1 /var/www/proiect1
Aici:
rootrămâne proprietarul principal;proiect1devine grupul asociat folderului.
Poți verifica:
ls -ld /var/www/proiect1
Rezultatul va arăta ceva de tipul:
drwxr-xr-x 5 root proiect1 4096 iul 15 12:00 /var/www/proiect1
Pasul 4: setează permisiunile corecte
Dacă vrei ca membrii grupului să poată scrie în proiect, setează:
sudo chmod -R 775 /var/www/proiect1
Asta înseamnă:
- proprietarul: citire, scriere, executare;
- grupul: citire, scriere, executare;
- ceilalți: doar citire și executare.
Dacă nu vrei ca alți utilizatori să poată nici măcar citi conținutul proiectului, poți merge pe:
sudo chmod -R 770 /var/www/proiect1
Acesta este adesea mai potrivit pentru proiecte interne sau aplicații care nu trebuie expuse altor utilizatori locali.
Pasul 5: activează setgid pe folder
Aici apare un detaliu foarte important. Dacă nu setezi setgid pe folder, fișierele noi create de utilizatori pot ajunge cu grupul principal al fiecăruia, nu cu grupul proiectului.
Ca să forțezi moștenirea grupului proiect1, rulează:
sudo chmod g+s /var/www/proiect1
Verifici cu:
ls -ld /var/www/proiect1
Vei vedea ceva de tipul:
drwxrws--- 5 root proiect1 4096 iul 15 12:00 /var/www/proiect1
Litera s în zona grupului arată că setgid este activ.
Asta înseamnă că fișierele și subfolderele noi create în acel director vor moșteni grupul proiect1. Este exact ce vrei pe un folder colaborativ.
Pasul 6: controlează și permisiunile fișierelor noi
Chiar dacă grupul este moștenit corect, permisiunile fișierelor noi depind și de umask. În multe sisteme, fișierele noi pot apărea cu permisiuni de tip 644, iar folderele cu 755.
Asta poate fi suficient pentru citire, dar nu întotdeauna pentru colaborare completă. Dacă vrei control mai fin, mai ales în echipe, poți folosi ACL.
Pasul 7: folosește ACL pentru control mai precis
Dacă vrei să te asiguri că grupul are acces complet inclusiv pe fișierele noi, instalează ACL dacă nu este deja prezent:
sudo apt install acl
Setezi acces explicit pentru grup:
sudo setfacl -R -m g:proiect1:rwx /var/www/proiect1
Apoi setezi ACL implicit pentru fișierele și folderele create în viitor:
sudo setfacl -R -d -m g:proiect1:rwx /var/www/proiect1
Verifici:
getfacl /var/www/proiect1
ACL este foarte util când permisiunile clasice Linux nu sunt suficiente sau când ai nevoie de reguli mai clare pentru echipe.
Exemplu complet de configurare
Dacă vrei să faci toată configurarea de bază dintr-o bucată:
sudo groupadd proiect1
sudo usermod -aG proiect1 ion
sudo usermod -aG proiect1 maria
sudo usermod -aG proiect1 alex
sudo chown -R root:proiect1 /var/www/proiect1
sudo chmod -R 2770 /var/www/proiect1
Observă 2770:
2activează setgid;770dă acces complet proprietarului și grupului, fără acces pentru ceilalți.
Este una dintre cele mai curate configurații pentru un folder de proiect partajat.
Ce să nu faci
Nu folosi:
chmod -R 777 /var/www/proiect1
Aceasta oferă scriere tuturor utilizatorilor și este o greșeală clasică.
Nu da sudo utilizatorilor doar pentru că nu pot scrie într-un folder. Problema trebuie rezolvată prin grupuri și permisiuni, nu prin acces administrativ general.
Nu amesteca mai multe proiecte fără logică în același grup dacă vrei control real.
Concluzie
Pentru acces controlat la foldere de proiect, rețeta corectă este: grup dedicat, utilizatori adăugați în grup, proprietar și grup setate corect, permisiuni 770 sau 775, plus setgid. Dacă ai nevoie de control mai fin, adaugi ACL.
Așa păstrezi serverul ordonat, reduci riscurile și eviți soluțiile nesigure de tip 777. În administrarea Linux, permisiunile bine făcute de la început economisesc mult timp și multe probleme mai târziu.
Surse folosite
The Linux Documentation Project — Linux Filesystem Hierarchy și permisiuni de bază
Linux man-pages — groupadd, usermod, chmod, chown
Linux man-pages — setfacl și getfacl
Debian Administrator’s Handbook — Users, Groups and Permissions

















































