U ovom brzom uputstvu vidjet ćemo kako se možemo koristiti chmod naredba u Ubuntu stroju za pronalaženje, izmjenu i uklanjanje korisničkih dozvola iz određenih datoteka koje postoje na korisnikovom datotečnom sustavu. Igrajmo se kroz razne uvjete kako bismo svladali osnovno chmod naredbe koje nam mogu olakšati svakodnevicu s Ubuntuom.
Dopuštenja za Linux
Dopuštenja za Linux sjajan su skup pravila koja je jednostavno razumjeti ako shvatimo osnovna prava. Tri glavne točke koje moramo razumjeti da bismo znali kako funkcioniraju Linux dozvole:
- Element za koji su definirana dopuštenja
- Koje se radnje mogu izvršiti uz dopuštenje
- Tko može izvršiti koje radnje
U Linuxovom datotečnom sustavu postoje dva osnovna elementa:
- Imenici
- Datoteke
Postoje tri radnje koje se mogu izvesti:
- Čitati
- Pisati
- Izvršiti. Osim izvršavanja skripti, iste radnje potrebne su i za stvaranje datoteka i drugih mapa unutar njih
Korisnik koji može izvršiti ove radnje su:
- Vlasnik datoteke
- Grupa vlasnika datoteke
- Korisnici koji nisu povezani s grupom vlasnika ili samim vlasnikom
Da biste vidjeli dozvole povezane s datotekom, pokrenite sljedeću naredbu:
ls -lEvo što vraćamo ovom naredbom:
Pronađite dopuštenje za datoteke
U izlazu, prvih 10 znakova predstavlja dozvolu za datoteku:
- Prvi znak, koji je u ovom slučaju '-' označava da je ovo datoteka. Za direktorij bi to bilo "d".
- Sljedećih devet znakova predstavlja dozvole za vlasnika, skupinu vlasnika i ostale.
Promjena dozvola
Sintaksa za izmjenu dopuštenja datoteke izgleda ovako:
chmod dozvola datoteka [datoteka 2] ..Osmerokutno predstavljanje za dopuštenja
Dozvole možemo prikazati kao osmični broj. Na primjer, za postavljanje dozvola za čitanje, pisanje i izvršavanje za vlasnika, dopuštenja za čitanje i pisanje za njegovu grupu, a za ostale nema dopuštenja, zdravo.txt datoteku, izvršit ćemo sljedeću naredbu:
sudo chmod 760 zdravo.txtJednom kada izvršimo gornju naredbu i pokušamo pročitati datoteku s ne-vlasničkim računom pomoću sljedeće naredbe:
sudo -u notowner-user još pozdrav.txtDobit ćemo sljedeću pogrešku:
zdravo.txt: Dozvola odbijenaAli odakle taj broj? Svaka znamenka tog broja predstavlja skup dozvola. Pogledajmo kako su izvedeni:
- 0: Označava da nema dopuštenja
- 1: Označava izvršiti dopuštenje
- 2: Označava pisati dopuštenje
- 4: Označava čitati dopuštenje
Za dodjeljivanje dozvola za čitanje, pisanje i izvršavanje za vlasnika dodijelili smo mu broj 7 (= 4 + 2 + 1). Razumijemo to bolje u tablici znamenki:
Broj | Binarni | Čitati | Pisati | Izvršiti |
0 | 000 | NE | NE | NE |
1 | 001 | NE | NE | DA |
2 | 010 | NE | DA | NE |
3 | 011 | NE | DA | DA |
4 | 100 | DA | NE | NE |
5 | 101 | DA | NE | DA |
6 | 110 | DA | DA | NE |
7 | 111 | DA | DA | DA |
Iznad tablice jasno je jasno što svaki predstavlja u smislu dozvola datoteke.
Predstavljanje znakova za Dopuštenja
Dozvole možemo prikazati kao osmični broj. Na primjer, za postavljanje dozvola za čitanje, pisanje i izvršavanje za vlasnika, dopuštenja za čitanje i pisanje za njegovu grupu, a za ostale nema dopuštenja, zdravo.txt datoteku, izvršit ćemo sljedeću naredbu:
sudo chmod u = rwe, g = rw, o-rwx pozdrav.txtDa bismo dodali dozvole postojećem korisniku, također možemo učiniti:
sudo chmod g + w zdravo.txtOvdje se dozvola za pisanje dodjeljivala korisničkoj grupi vlasnika datoteke.
Rekurzivne promjene dozvole
Također možemo jednom dozvolom promijeniti dozvole za datoteke sadržane u određenom direktoriju. Da biste odjednom izmijenili dozvole svake datoteke i mape u navedenom direktoriju, upotrijebite sudo chmod s -R:
sudo chmod 777 direktorij / *Možemo vidjeti sljedeći izlaz koji jasno odražava promjenu dozvola datoteke:
Rekurzivno mijenjanje dozvola za datoteke
Zaključak
U ovoj smo lekciji pogledali kako možemo modificirati dozvole datoteke i ako je potrebno, to učiniti rekurzivno. Razumjeli smo osnovne koncepte kako Linux dopuštenja koja nam mogu puno pomoći u svakodnevnom radu.