Përshëndetje të gjithëve. Kjo është përkthimi i një artikulli nga libri RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 dhe EX300.
Nga ana ime: Shpresoj se ky artikull do të jetë i dobishëm jo vetëm për fillestarët, por gjithashtu do të ndihmojë administratorët më të përvojshëm të organizojnë njohuritë e tyre.
Pra, le të fillojmë.

Për të aksesuar skedaret në Linux, përdoren lejet. Këto leje caktohen për tre objekte: pronarin e skedarit, pronarin e grupit dhe një objekt tjetër (dmth, të gjithë të tjerët). Në këtë artikull do të mësoni se si të aplikoni lejet.
Artikulli fillon me një përmbledhje të koncepteve bazë, pastaj diskutohen lejet speciale (Special permissions) dhe listat e kontrollit të aksesit (ACL). Në fund të këtij artikulli shqyrtohet konfigurimi i të drejtave të aksesit në mënyrë standarde përmes umask, si dhe menaxhimi i atributeve të zgjeruara të përdoruesit.
Menaxhimi i pronësisë së skedareve
Para se të diskutoni për lejet, duhet të dini rolin e pronarit të skedarit dhe katalogut. Pronësia e skedareve dhe katalogëve është thelbësore për punën me lejet. Në këtë seksion do të mësoni fillimisht se si mund të shihni pronarin. Pastaj, do të mësoni se si të ndryshoni pronarin e grupit dhe përdoruesit për skedarët dhe katalogët.
Shfaqja e pronarit të skedarit ose katalogut
Në Linux, çdo skedar dhe çdo katalog ka dy pronarë: përdoruesi dhe pronari i grupit.
Këta pronarë caktohen kur krijohet skedari ose katalogu. Përdoruesi që krijon skedarin bëhet pronari i këtij skedari, dhe grupi primar, në të cilin është ky përdorues, bëhet gjithashtu pronari i këtij skedari. Për të përcaktuar nëse keni si përdorues të drejta aksesimi në skedarin ose katalogun, shell-i kontrollon pronësinë e tyre.
Kjo ndodh në renditjen e mëposhtme:
- Shell-i kontrollon nëse jeni pronari i skedarit, në të cilin dëshironi të keni akses. Nëse jeni ky pronar, merrni lejet dhe shell-i ndalon kontrollin.
- Nëse nuk jeni pronari i skedarit, shell-i do të kontrollojë nëse jeni anëtar i grupit, i cili ka leje për këtë skedar. Nëse jeni anëtar i këtij grupi, merrni akses në skedar me lejet që janë caktuar për grupin, dhe shell-i do të ndalojë kontrollin.
- Nëse nuk jeni as përdoruesi, as pronari i grupit, merrni të drejtat e përdoruesve të tjerë (Other).
Për të parë caktimet aktuale të pronarit, mund të përdorni komandën ls -l. Kjo komandë tregon përdoruesin dhe pronarin e grupit. Më poshtë mund të shihni cilësimet e pronarit për dosjet në direktorinë /home.
[root@server1 home]# ls -l
total 8
drwx------. 3 bob bob 74 Feb 6 10:13 bob
drwx------. 3 caroline caroline 74 Feb 6 10:13 caroline
drwx------. 3 fozia fozia 74 Feb 6 10:13 fozia
drwx------. 3 lara lara 74 Feb 6 10:13 lara
drwx------. 5 lisa lisa 4096 Feb 6 10:12 lisa
drwx------. 14 user user 4096 Feb 5 10:35 user
Me anë të komandës ls mund të shihni pronarin e skedave në këtë dosje. Ndonjëherë mund të jetë e dobishme të merrni një listë të të gjitha skedave në sistem ku pronar është ky përdorues ose grup. Për këtë, mund të përdorni find. Argumenti find -user mund të përdoret për këtë qëllim. Për shembull, komanda e mëposhtme tregon të gjitha skedat ku pronar është përdoruesi linda:
find / -user lindaMund të përdorni gjithashtu find për të kërkuar skedat ku një grup i caktuar është pronar.
Për shembull, komanda e mëposhtme kërkon të gjitha skedat që i përkasin grupit users:
find / -group usersNdryshimi i pronarit
Për të aplikuar lejet përkatëse, e para që duhet të merret parasysh është pronësia. Për këtë ekziston komanda chown. Sintaksa e kësaj komande nuk është e komplikuar për t'u kuptuar:
chown kush çfarëPër shembull, komanda e mëposhtme ndryshon pronarin e direktorive /home/account në përdoruesin linda:
chown linda /home/accountEkipa chown ka disa opsione, njëra prej të cilave është veçanërisht e dobishme: -R. Mund të merrni me mend se çfarë bën ajo, sepse kjo opsion është e disponueshme edhe për shumë komanda të tjera. Kjo ju lejon të vendosni pronarin në mënyrë rekursive, që ju lejon të vendosni pronarin e direktorive aktuale dhe gjithçka që është poshtë saj. Komanda e mëposhtme ndryshon pronarin për direktorine /home dhe gjithçka që ndodhet poshtë saj, në përdoruesin linda:
Tani pronarët duken kështu:
[root@localhost ~]# ls -l /home
total 0
drwx------. 2 account account 62 Sep 25 21:41 account
drwx------. 2 lisa lisa 62 Sep 25 21:42 lisa
Të realizojmë:
[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#
Tani përdoruesi lisa është bërë pronari i direktorise account:
[root@localhost ~]# ls -l /home
total 0
drwx------. 2 lisa account 62 Sep 25 21:41 account
drwx------. 2 lisa lisa 62 Sep 25 21:42 lisa
Ndryshimi i pronarit të grupit
Ka dy mënyra për të ndryshuar pronarësinë e grupit. Mund ta bëni këtë duke përdorur chown, por ekziston një komandë speciale me emrin chgrp, e cila e kryen këtë punë. Nëse doni të përdorni komandën chown, përdorni . ose : para emrit të grupit.
Komanda në vazhdim ndërron pronarin e grupit /home/account në grupin account:
chown .account /home/account
Mund të përdorni chown për të ndryshuar pronarin e përdoruesit dhe/ose grupit në disa mënyra. Ja disa shembuj:
- chown lisa myfile1 vendos përdoruesin lisa si pronari i skedarit myfile1.
- chown lisa.sales myfile vendos përdoruesin lisa si pronari i skedarit myfile, dhe gjithashtu vendos grupin sales si pronar të këtij skedari.
- chown lisa:sales myfile e njëjtë si komandën e mëparshme.
- chown .sales myfile vendos grupin sales si pronar të skedarit myfile pa ndryshuar pronarin e përdoruesit.
- chown :sales myfile e njëjtë si komandën e mëparshme.
Mund të përdorni komandën chgrp, për të ndryshuar pronarin e grupit. Le të marrim shembullin në vazhdim, ku mund të chgrp vendosni grupin sales si pronar të direktoriumit account:
chgrp .sales /home/accountAshtu si në rastin e chown, mund të përdorni opsionin -R me chgrp, si dhe të ndryshoni pronarin e grupit në mënyrë rekurzive.
Kuptimi i pronarit të paracaktuar
Keni mundur të vini re se kur një përdorues krijon një skedar, aplikohet pronësia e paracaktuar.
Përdoruesi që krijon skedarin automatikisht bëhet pronari i këtij skedari, dhe grupi kryesor i këtij përdoruesi automatikisht bëhet pronari i këtij skedari. Zakonisht ky është grupi që tregohet në skedarin /etc/passwd si grupi kryesor i përdoruesit. Megjithatë, nëse përdoruesi është anëtar i disa grupeve, ai mund ta ndryshojë grupin e tij efektiv kryesor.
Për të treguar grupin aktual efektiv kryesor, përdoruesi mund të përdorë komandën grupet:
[root@server1 ~]# groups lisa
lisa : lisa account sales
Nëse përdoruesi aktual linda dëshiron të ndryshojë grupin e tij efektiv kryesor, ai do të përdorë komandën newgrp, pasuar nga emri i grupit që ai dëshiron të vendosë si grupin e ri efektiv kryesor. Pasi të përdorë komandën newgrp grupi kryesor do të jetë aktiv derisa përdoruesi të shkruajë komandën exit ose të dalë nga sistemi.
Më poshtë tregohet si përdoruesi linda përdor këtë komandë, ku grupi kryesor bëhet grupi sales:
lisa@server1 ~]$ groups
lisa account sales
[lisa@server1 ~]$ newgrp sales
[lisa@server1 ~]$ groups
sales lisa account
[lisa@server1 ~]$ touch file1
[lisa@server1 ~]$ ls -l
total 0
-rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1
Pas ndryshimit të grupit kryesor aktiv, të gjitha skedarët e rinj të krijuar nga përdoruesi do të marrin këtë grup si grup pronësie. Për të rikthyer konfigurimin origjinal të grupit kryesor, përdorni exit.
Për të pasur mundësi të përdorni komandën newgrp, përdoruesi duhet të jetë anëtar i grupit që dëshiron të përdorë si grup kryesor. Përveç kësaj, fjalëkalimi i grupit mund të përdoret për grupin me anë të komandës gpasswd. Nëse përdoruesi përdor komandën newgrp, por nuk është anëtar i grupit të synuar, shell-i kërkon fjalëkalimin e grupit. Pasi të vendosni fjalëkalimin e saktë të grupit, do të vendoset një grup kryesor efektiv i ri.
Menaxhimi i të drejtave kryesore
Sistemi i lejeve të Linux-it u shpik në vitet 1970. Duke qenë se kërkesat kompjuterike ishin të kufizuara në ato vite, sistemi i bazuar i lejeve ishte mjaft i kufizuar. Ky sistem lejesh përdor tri leje që mund të aplikohen në skedarë dhe katalgje. Në këtë seksion do të mësoni si të përdorni dhe ndryshoni këto leje.
Kuptimi i të drejtave për lexim, shkruhim dhe ekzekutim
Tre lejet themelore ju lejojnë të lexoni, shkruani dhe ekzekutoni skedarë. Efekti i këtyre lejeve ndryshon kur aplikohen në skedarë ose katalogë. Në lidhje me një skedar, leja për lexim ju jep të drejtën ta hapni skedarin për të lexuar. Pas kësaj, ju mund ta lexoni përmbajtjen e tij, por kjo do të thotë se kompjuteri juaj mund ta hapë skedarin për të bërë diçka me të.
Një skedar programi që kërkon qasje në një bibliotekë duhet, për shembull, të ketë qasje për lexim në këtë bibliotekë. Kështu, leja për lexim është leja më themelore që ju nevojitet për të punuar me skedarë.
Në lidhje me një katalog, leja për lexim lejon shfaqjen e përmbajtjes së këtij katalogu. Duhet të dini se kjo leje nuk ju lejon të lexoni skedarët në katalg. Sistemi i lejeve të Linux-it nuk njeh trashëgiminë, dhe mënyra e vetme për të lexuar një skedar është të përdorni lejet për leximin e atij skedari.
Si, si mund të hamendësoni, leja për shkrim, nëse aplikohet për një skedar, lejon shkrimin në skedarin. Me fjalë të tjera, lejon ndryshimin e përmbajtjes së skedareve ekzistuese. Megjithatë, nuk lejon krijimin ose fshirjen e skedarëve të rinj ose ndryshimin e të drejtave të aksesit në skedar. Për këtë, ju nevojitet të jepni leje për shkrim në direktoriumin ku doni të krijoni skedarin. Në direktoriume, kjo leje gjithashtu lejon krijimin dhe fshirjen e nën-direktoriumeve të reja.
Leja për ekzekutim është ajo që ju nevojitet për të ekzekutuar një skedar. Ajo kurrë nuk do të vendoset si standarde, duke e bërë Linux praktikisht të paprekshëm nga viruset. Vetëm dikush me të drejta shkrimi në direktorium mund të aplikohet leja për ekzekutim.
Më poshtë përmbledh përdorimin e lejeve kryesore:

Përdorimi i chmod
Për të menaxhuar të drejtat, përdoret komandë chmod. Në përdorimin e chmod ju mund të vendosni leje për përdoruesin (user), grupin (group) dhe të tjerët (other). Ju mund ta përdorni këtë komandë në dy moda: moda relative dhe moda absolute. Në modën absolute, përdoren tre numra për të vendosur lejet bazë.

Kur përshtatni lejet, llogaritni vlerën që ju nevojitet. Nëse dëshironi të vendosni lexim, shkrim dhe ekzekutim për përdoruesin, lexim dhe ekzekutim për grupin, si dhe lexim dhe ekzekutim për të tjerët në skedarin /somefile, atëherë përdorni komandën e mëposhtme chmod:
chmod 755 /somefileKur përdorni chmod në këtë mënyrë, të gjitha lejet aktuale zëvendësohen me lejet që ju keni vendosur.
Nëse dëshironi të ndryshoni lejet në raport me lejet aktuale, mund të përdorni chmod në modën relative. Kur përdorni chmod në modën relative, punoni me tre tregues për të treguar se çfarë dëshironi të bëni:
- Së pari, tregon për kë dëshironi të ndryshoni lejet. Për këtë, mund të zgjidhni midis përdoruesit (u), grupit (g) dhe të tjerëve (o).
- Më pas përdorni operatorin për të shtuar ose hequr leje nga moda aktuale ose për t'i vendosur ato në mënyrë absolute.
- Në fund, përdorni r, w dhe x, për të treguar se cilat leje dëshironi të vendosni.
Kur ndryshoni lejet në mënyrë relative, mund të anashkaloni pjesën "kë" për të shtuar ose fshirë leje për të gjitha objektet. Për shembull, kjo komandë shton lejen për ekzekutim për të gjithë përdoruesit:
chmod +x somefileKur punoni në mënyrë relative, gjithashtu mund të përdorni komanda më të komplikuara. Për shembull, kjo komandë shton lejen për të shkruar për grupin dhe heq lejen për të lexuar për të tjerët:
chmod g+w,o-r somefileKur përdoret chmod -R o+rx /data në këtë mënyrë, vendosni lejen për ekzekutim për të gjithë katalogët dhe për skedarët brenda katalogut /data. Për të vendosur lejen për ekzekutim vetëm për katalogët, e jo për skedarët, përdorni chmod -R o+ rX /data.
Shkronja e madhe X garanton që skedarët nuk do të kenë lejen për ekzekutim nëse skedari nuk ka vendosur tashmë lejen për ekzekutim për disa objekte. Kjo e bën X një mënyrë më të arsyeshme për të punuar me lejet e ekzekutimit; kjo do të ndihmojë për të shmangur vendosjen e kësaj lejeje në skedarë, ku nuk është e nevojshme.
Lejet e avancuara
Përveç lejeve bazë, të cilat sapo lexuat, në Linux ekziston gjithashtu një grup lejesh të avancuara. Këto nuk janë ato leje që vendosni automatikisht, por ndonjëherë ato ofrojnë një shtesë të dobishme. Në këtë seksion do të mësoni se çfarë janë dhe si t'i konfiguroni ato.
Kuptimi i lejeve të avancuara SUID, GUID dhe bita ngjitëse
Ekzistojnë tri leje të avancuara. E para është leja për vendosjen e identitetit të përdoruesit (SUID). Në disa raste të veçanta, mund ta aplikoni këtë leje për skedarët që mund të ekzekutohen. Automatikisht, përdoruesi që ekzekuton skedarin e ekzekutueshëm e ekzekuton këtë skedar me lejet e tij.
Për përdoruesit e zakonshëm, kjo zakonisht do të thotë se përdorimi i programit është i kufizuar. Megjithatë, në disa raste, përdoruesi ka nevojë për leje speciale, vetëm për të kryer një detyrë të caktuar.
Merrni parasysh, për shembull, situatën kur përdoruesi duhet të ndërronë fjalëkalimin. Për këtë, përdoruesi duhet të shkruajë fjalëkalimin e tij të ri në skedarin /etc/shadow. Megjithatë, ky skedar nuk është në dispozitë për t'u shkruar nga përdoruesit që nuk kanë të drejtat e aksesit root:
root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow
Lejoja SUID ofron një zgjidhje për këtë problem. Në utilitarin /usr/bin/passwd, kjo lejohet me default. Kjo do të thotë se kur ndryshohet fjalëkalimi, përdoruesi përkohësisht merr të drejtat e root-it, gjë që i lejon atij të shkruajë në skedarin /etc/shadow. Ju mund të shihni lejen SUID me ls -l si s në pozitat ku zakonisht prisni të shihni x për lejet e përdoruesve:
[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd
Leja SUID mund të duket e dobishme (dhe në disa raste është), por gjithashtu është potencialisht e rrezikshme. Nëse përdoret gabimisht, mund të jepni aksese të papërshtatshme root. Prandaj, rekomandoj që të përdoret me kujdes të madh.
Shumica e administratorëve ndonjëherë nuk do ta kenë nevojë ta përdorin; ju do ta shihni vetëm në disa skedarë ku sistemi operativ duhet ta vendosë këtë automatikisht.
Leja e dytë speciale është identifikatori i grupit (SGID). Kjo leje ka dy efekte. Kur aplikohet mbi një skedar ekzekutiv, ajo i jep përdoruesit që ekzekuton skedarin të drejtat e pronarit të grupit të këtij skedari. Pra, SGID mund të bëjë më shumë ose më pak të njëjtën gjë si SUID. Megjithatë, për këtë qëllim, SGID përdoret praktikisht pak.
Ashtu si me lejen SUID, SGID aplikohet në disa skedarë sistemikë si një konfigurim default.
Kur aplikohet në një dosje, SGID mund të jetë i dobishëm, sepse ju mund ta përdorni për të vendosur pronarin e grupit si default për skedarët dhe nën-dosjet e krijuara në këtë dosje. Me default, kur një përdorues krijon një skedar, grupi i tij primar efektiv vendoset si pronar grupi për këtë skedar.
Kjo nuk është gjithmonë shumë e dobishme, sidomos sepse përdoruesit e Red Hat/CentOS kanë grupin e tyre si grupin e parë, dhe janë vetëm ata anëtarë. Prandaj, me default, skedarët që krijon përdoruesi do të jenë grup për qasje të përbashkët.
Imagjinoni një situatë ku përdoruesit linda dhe lori punojnë në kontabilitet dhe janë anëtarë të grupit accountPërveç kësaj, këta përdorues janë anëtarë të një grupi privat, të cilët janë vetëm ata. Megjithatë, të dy përdoruesit janë anëtarë të grupit account, dhe gjithashtu si një opsion në grupin dytësor.
Situata standart është që kur ndonjë nga këta përdorues krijon një skedar, grupi kryesor bëhet pronar. Prandaj, në mënyrë standart, linda nuk mund të aksesojë skedarët e krijuar nga lori, dhe anasjelltas. Megjithatë, nëse krijoni një katalog të përbashkët grupi (p.sh., /groups/account) dhe siguroheni që leja SGID aplikohet në këtë katalog dhe që llogaria e grupit është emëruar si pronar grupi për këtë katalog, të gjithë skedarët e krijuar në këtë katalog dhe në të gjitha nënkatalogët e tij, do të marrin gjithashtu grupin account si pronar grupi në mënyrë standart.
Për këtë arsye, leja SGID është një leje shumë e dobishme për t'u vendosur në katalogët e grupeve të përbashkëta.
Leja SGID shfaqet në daljen ls -l si s në pozitën ku zakonisht gjeni lejen për ekzekutimin e grupit:
[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account
E treta nga lejet speciale është sticky bit. Kjo leje është e dobishme për mbrojtjen e skedarëve nga fshirja aksidentale në një mjedis ku disa përdorues kanë të drejta për shkrim në të njëjtin katalog. Nëse aplikohet sticky bit, për përdoruesin është e mundur të fshijë një skedar vetëm nëse ai është pronari i skedarit ose i katalogut në të cilin ndodhet skedari. Për këtë arsye, ajo aplikohet si leje standart për katalogun /tmp dhe gjithashtu mund të jetë e dobishme për katalogët e grupeve të përbashkëta.
Pa sticky bit, nëse një përdorues mund të krijojë skedarë në një katalog, ai gjithashtu mund të fshijë skedarë nga ky katalog. Në një mjedis grupor publik, kjo mund të jetë shqetësuese. Mendoni për përdoruesit linda dhe lori, të cilët të dy kanë të drejta për shkrim në katalogun /data/account dhe marrin këto leje falë pjesëmarrjes në grupin account. Prandaj, linda mund të fshijë skedarë të krijuar nga lori dhe anasjelltas.
Kur aplikoni sticky bit, përdoruesi mund të fshijë skedarë vetëm nëse një nga kushtet e mëposhtme plotësohet:
- Përdoruesi është pronari i skedarit;
- Përdoruesi është pronari i katalogut në të cilin ndodhet skedari.
Kur përdoret ls -l, mund ta shihni sticky bit si t në pozitën ku zakonisht e shihni lejen për të ekzekutuar për të tjerët:
[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/
Aplikimi i të drejtave të avancuara
Për të aplikuar SUID, SGID dhe sticky bit, mund të përdorni gjithashtu chmod. SUID ka një vlerë numerike 4, SGID ka një vlerë numerike 2, dhe sticky bit ka një vlerë numerike 1.
Nëse dëshironi të aplikoni këto leje, duhet të shtoni një argument katër shifror në chmod, shifra e parë i referohet lejeve speciale. Radhë tjetër, për shembull, do të shtojë lejen SGID në katalog dhe do të vendosë rwx për përdoruesin dhe rx për grupin dhe të tjerët:
chmod 2755 /somedirKjo është mjaft e papraktikueshme, nëse keni nevojë të shihni të drejtat aktuale të aksesit që janë vendosur, para se të punoni me chmod në modin absolut. (Rrezikoni të mbivendosni lejet nëse nuk e bëni këtë.) Prandaj, rekomandoj të punoni në modin relativ, nëse keni nevojë të aplikoni ndonjë nga lejet speciale:
- Për SUID përdorni chmod u+s.
- Për SGID përdorni chmod g+s.
- Për sticky bit përdorni chmod +t, dhe pastaj emri i skedarit ose katalogut, për të cilin dëshironi të vendosni lejet.
Në tabelë përmbledh gjithçka që është e rëndësishme për të ditur rreth menaxhimit të lejeve speciale.

Shembull i punës me të drejtat speciale
Në këtë shembull, përdorni të drejtat speciale, në mënyrë që anëtarët e grupit të kenë më lehtë ndarjen e skedarëve në katalogun e grupit të përbashkët. Ju caktoni ID-në e bitit të identitetit të grupit, si dhe sticky bit, dhe shihni se pas vendosjes së tyre shtohen funksione që lehtësojnë bashkëpunimin e anëtarëve të grupit.
- Hapni terminalin, ku jeni përdoruesi linda. Krijimi i përdoruesve bëhet me komandën useradd linda, shtoni fjalëkalimin passwd linda.
- Krijoni në rrënjë katalogun /data dhe nënkatalogun /data/sales me komandën mkdir -p /data/sales. Kryeni cd /data/sales, për të kaluar në katalogun sales. Kryeni touch linda1 dhe touch linda2, për të krijuar dy skedare bosh, pronari i të cilëve është linda.
- Kryeni su â lisa pĂ«r tĂ« kaluar pĂ«rdoruesin aktual nĂ« pĂ«rdoruesin lisa, i cili Ă«shtĂ« gjithashtu anĂ«tar i grupit sales.
- Kryeni cd /data/sales dhe nga ky katalog kryeni ls -l. Do të shihni dy skedare, të cilat janë krijuar nga përdoruesi linda dhe i takojnë grupit linda. Kryeni rm -f linda*. Kjo do të fshijë të dy skedaret.
- Kryeni touch lisa1 dhe touch lisa2, për të krijuar dy skedare, të cilat i takojnë përdoruesit lisa.
- Kryeni su â pĂ«r tĂ« rritur privilegjet tuaja nĂ« nivele root.
- Kryeni chmod g+s,o+t /data/sales, për të vendosur bitin e identifikatorit të grupit (GUID) dhe gjithashtu sticky bit në katalogun e grupit të përbashkët.
- Kryeni su â linda. Pastaj ekzekutoni touch linda3 dhe touch linda4. Tani duhet tĂ« shihni se dy skedarĂ«t qĂ« krijuat ju pĂ«rkasin grupit sales, i cili Ă«shtĂ« pronar i grupit tĂ« katalogut /data/sales.
- Kryeni rm -rf lisa*. Sticky bit parandalon fshirjen e këtyre skedave në emër të përdoruesit linda, pasi ju nuk jeni pronari i këtyre skedave. Mbani mend, nëse përdoruesi linda është pronar i katalogut /data/sales, ai do të mund t'i fshijë këto skeda në çdo rast!
Menaxhimi i ACL (setfacl, getfacl) në Linux
Edhe nëse të drejtat e zgjeruara, të diskutuara më lart, shtojnë funksionalitet të dobishëm për mënyrën sesi Linux punon me lejet, kjo nuk ju lejon të jepni leje për më shumë se një përdorues ose një grup në një skedar.
Listat e kontrollit të qasjes ofrojnë këtë funksion. Përveç kësaj, ato lejojnë administratorët të vendosin leje të paracaktuara në mënyrë të komplikuar, ku lejet e vendosura mund të jenë të ndryshme në katalogje të ndryshme.
Kuptimi i ACL
Edhe pse nën-sistemi ACL shton funksionalitete të shkëlqyera në serverin tuaj, ai ka një mangësi: jo të gjitha utilitetet e mbështesin atë. Prandaj, mund të humbni cilësimet e ACL kur kopjoni ose lëvizni skedarë, dhe softueri për krijimin e kopjeve rezervë mund të mos kryejë krijimin e kopjeve të cilësimeve të ACL.
Utiliteti tar nuk mbështet ACL. Për t'u siguruar që cilësimet e ACL nuk do të humbasin gjatë krijimit të një rezervë, përdorni star në vend të tar. star funksionon me të njëjtat parametra si tar; vetëm se shton mbështetje për cilësimet e ACL.
Mund tĂ« krijoni gjithashtu njĂ« rezervĂ« tĂ« ACL me getfacl, e cila mund tĂ« rikuperohet me komandĂ«n setfacl. PĂ«r tĂ« krijuar njĂ« rezervĂ«, pĂ«rdorni getfacl -R /directory > file.acls. PĂ«r tĂ« rikuperuar cilĂ«simet nga skedari i rezervĂ«s, pĂ«rdorni setfacl ârestore=file.acl.
Mungesa e mbështetjes nga disa mjete nuk duhet të jetë problem. Listat ACL shpesh aplikohen në katalogje si një masë strukturore, përpara se sa në skedarë të veçantë.
Prandaj, ato nuk do të jenë shumë, por vetëm disa, të aplikuara në vende të mençura të sistemit të skedarëve. Në këtë mënyrë, rikthimi i listave origjinale të ACL, me të cilat keni punuar, është relativisht i lehtë, edhe nëse software-i juaj për kopjim rezervë nuk i mbështet ato.
Përgatitja e sistemit të skedarëve për ACL
Para se të filloni punën me ACL, mund të jetë e nevojshme të përgatitni sistemin e skedarëve për mbështetje të ACL. Meqenëse metadatë e sistemit të skedarëve duhen zgjeruar, mbështetje për ACL nuk është gjithmonë e disponueshme si standard në sistemin e skedarëve. Nëse, gjatë konfigurimit të listave ACL për sistemin e skedarëve, merrni mesazhin "operacioni nuk mbështetet", ndoshta sistemi juaj i skedarëve nuk ka mbështetje për ACL.
Për ta rregulluar këtë, ju nevojitet të shtoni opsionin acl mount në skedarin /etc/fstab, në mënyrë që sistemi i skedarëve të jetë i montuar me mbështetje për ACL si standard.
Ndryshimi dhe shikimi i cilësimeve të ACL me setfacl dhe getfacl
Për të vendosur ACL, ju nevojitet komanda setfacl. Për të parë cilësimet aktuale të ACL, ju nevojitet getfacl. Komanda ls -l nuk tregon asnjë ACL ekzistues; thjesht tregon + pas listës së lejeve, e cila tregon se listat ACL zbatohen edhe për skedarin.
Para se të konfiguroni listat ACL, gjithmonë është e dobishme të tregoni cilësimet aktuale të ACL me anë të getfacl. Më poshtë në shembullin, mund të shihni të drejtat e tanishme të qasjes, siç tregohet me anë të ls -l, si dhe siç tregohet me getfacl. Nëse e shihni mjaft mirë, do të vëreni se informacioni i shfaqur është identik.
[root@server1 \/]# ls -ld \/dir\ndrwxr-xr-x. 2 root root 6 Feb 6 11:28 \/dir\n[root@server1 \/]# getfacl \/dir\ngetfacl: Po heq "\" nga emrat e rrugëve absolute\n# file: dir\n# owner: root\n# group: root\nuser::rwx\ngroup::r-x\nother::r-x
Si rezultat i ekzekutimit të komandës getfacl poshtë shihet se lejet janë treguar për tre objekte të ndryshme: përdoruesin, grupin dhe të tjerët. Tani le të shtojmë ACL për të dhënë të drejta për lexim dhe ekzekutim grupit sales. Komanda për këtë është setfacl -m g:sales:rx \/dir. Në këtë komandë -m tregon se cilësimet aktuale të ACL duhet të ndryshohen. Pas kësaj g:sales:rx i tregon komandës të vendosë ACL për të lexuar dhe ekzekutuar (rx) për grupin (g) sales. Më poshtë mund të shihni si duket komanda, si dhe daljen e komandës getfacl pas ndryshimit të cilësimeve aktuale të ACL.
[root@server1 \/]# setfacl -m g:sales:rx \/dir\n[root@server1 \/]# getfacl \/dir\ngetfacl: Po heq "\" nga emrat e rrugëve absolute\n# file: dir\n# owner: root\n# group: root\nuser::rwx\ngroup::r-x\ngroup:sales:r-x\nmask::r-x\nother::r-x
Tani, tani e kuptoni se si të instaloni ACL grupor, është e lehtë të kuptoni ACL për përdoruesit dhe përdoruesit e tjerë. Për shembull, komanda setfacl -m u:linda:rwx /data jep leje për përdoruesin linda në dosjen /data, pa e bërë atë pronar dhe pa ndryshuar emërimin e pronarit aktual.
Ekipa setfacl ka shumë mundësi dhe opsione. Një variant është veçanërisht i rëndësishëm, parametri -R. Nëse përdoret, opsioni bën që konfigurimi i ACL të jetë për të gjitha skedarët dhe nën-dosjet që aktualisht ekzistojnë në dosjen ku po vendosni ACL. Rekomandohet të përdorni gjithmonë këtë opsion kur ndryshoni listat ACL për dosjet ekzistuese.
Puna me ACL-në e paracaktuar
Një nga përfitimet e përdorimit të listave ACL është se mund të jepni leje për disa përdorues ose grupe në dosje. Një tjetër përfitim është se mund të përfshini trashëgiminë, duke punuar me ACL-në e paracaktuar.
Duke vendosur ACL-në e paracaktuar, do të përcaktoni lejet që do të vendosen për të gjitha elementet e reja që krijohen në dosje. Mbani parasysh se ACL-ja e paracaktuar nuk ndryshon lejet për skedarët dhe nën-dosjet ekzistuese. Për t'i ndryshuar ato, duhet të shtoni dhe një ACL të zakonshëm!
Kjo është e rëndësishme të dihet. Nëse dëshironi të përdorni ACL për të përcaktuar qasje për disa përdorues ose grupe në të njëjtën dosje, duhet të vendosni ACL-në dy herë. Së pari, përdorni setfacl -R -m, për të ndryshuar ACL-në për skedarët aktualë. Pastaj përdorni setfacl -m d:, për t'u kujdesur për të gjitha elementet e reja që do të krijohen gjithashtu.
Për të vendosur ACL-në e paracaktuar, thjesht duhet të shtoni opsionin d pas opsionit -m (renditja ka rëndësi!). Prandaj, përdorni setfacl -m d:g:sales:rx /data, nëse dëshironi që grupi i shitjeve të lexojë dhe të kryejë gjithçka që do të krijohet ndonjëherë në dosjen /data.
Kur përdorni listat ACL të paracaktuara, gjithashtu mund të jetë e dobishme të vendosni ACL për të tjerët. Zakonisht nuk ka kuptim të veçantë, sepse gjithashtu mund të ndryshoni lejet për të tjerët duke përdorur chmod. Sidoqoftë, çfarë nuk mund ta bëni me ndihmën e chmod, kjo tregon të drejtat që duhet t'u jepen përdoruesve të tjerë për çdo skedar të ri që do të krijohet ndonjëherë. Nëse dëshirani që të tjerët të mos kenë asnjë leje për ndonjë gjë që është krijuar në /data, për shembull, përdorni setfacl -m d:o::- /data.
ACL-të dhe lejet e zakonshme nuk janë gjithmonë të integruara mirë. Problemet mund të ndodhin nëse keni aplikuar ACL-në e paracaktuar në një katalog, pastaj elemente janë shtuar në këtë katalog dhe më pas përpiqeni të ndryshoni lejet e zakonshme. Ndryshimet që aplikohen në lejet e zakonshme nuk do të reflektohen mirë në shqyrtimin e ACL-ve. Për të shmangur problemet, së pari vendosni lejet e zakonshme, pastaj vendosni ACL-në e paracaktuar (dhe pastaj përpiquni të mos i ndryshoni ato më shumë).
Shembulli i menaxhimit të të drejtave të zgjeruara duke përdorur ACL
Në këtë shembull do të vazhdoni të punoni me katalogët /data/account dhe /data/sales, të cilët i keni krijuar më parë. Në shembujt e mëparshëm, keni garantuar që grupi sales ka leje për /data/sales, dhe grupi account ka leje për /data/account.
Së pari, sigurohuni që grupi account të marrë leje për të lexuar në katalogun /data/sales, dhe grupi sales të marrë leje për të lexuar në katalogun /data/account.
Pastaj, vendosni listat e ACL-ve të paracaktuara për të siguruar që të gjitha skedarët e rinj kanë lejet e përcaktuara siç duhet për të gjithë elementët e rinj.
- Hyni në terminal.
- Kryeni setfacl -m g:account:rx /data/sales dhe setfacl -m g:sales:rx /data/account.
- Kryeni getfacl, për t'u siguruar që lejet janë vendosur ashtu siç dëshironit.
- Kryeni setfacl -m d:g:account:rwx,g:sales:rx /data/sales, për të vendosur ACL-në e paracaktuar për katalogun sales.
- Shtoni ACL-në e paracaktuar për katalogun /data/account, duke përdorur setfacl -m d:g:sales:rwx,g:account:rx /data/account.
- Sigurohuni që konfigurimet e ACL-ve janë efektive, duke shtuar një skedar të ri në /data/sales. Ekzekutoni touch /data/sales/newfile dhe ekzekutoni getfacl /data/sales/newfile për të kontroluar lejet aktuale.
Vendosja e lejeve të paracaktuara me umask
Më sipër keni mësuar si të punoni me ACL-të e paracaktuara. Nëse nuk përdorni ACL, ka një parametrave të shell që përcaktojnë lejet e paracaktuara që do të merrni: umask (maskë e kundërt). Në këtë seksion do të mësoni se si të ndryshoni lejet e paracaktuara duke përdorur umask.
Me siguri keni vënë re se kur krijoni një skedar të ri, disa leje vendosen automatikisht. Këto leje përcaktohen nga konfigurimi umask. Ky kyç është i aplikueshëm për të gjithë përdoruesit gjatë hyrjes në sistem. Në parametrin umask shfrytëzohet një vlerë numerike e cila zbritet nga lejet maksimale që mund të vendosen automatikisht për një skedar; cilësimi maksimal për skedarët është 666, ndërsa për katalogët është 777.
Megjithatë, disa përjashtime i përkasin këtij rregulli. Mund të gjeni një përmbledhje të plotë të cilësimeve umask në tabelën më poshtë.
Nga numrat e përdorur në umask, ashtu siç është rasti me argumentet numerike për komandën chmod, numri i parë i përket lejeve për përdoruesin, numri i dytë i përket lejeve për grupin, dhe numri i fundit i përket lejeve së bashku për të tjerët. Vlera umask e paracaktuar 022 jep 644 për të gjithë skedarët e rinj dhe 755 për të gjithë katalogët e rinj të krijuar në serverin tuaj.
Përmbledhja e plotë e të gjitha vlerave numerike umask dhe rezultateve të tyre në tabelën më poshtë.

Një mënyrë e thjeshtë për të parë se si funksionon parametri umask është si vijon: filloni me lejet e paracaktuara për skedarin të vendosur në 666, dhe zbritni umask-un për të marrë lejet aktuale. Bëni të njëjtën gjë për katalogun dhe lejet e tij të paracaktuara 777.
Ka dy mënyra për të ndryshuar cilësimin umask: për të gjithë përdoruesit dhe për përdorues të veçantë. Nëse dëshironi të vendosni umask për të gjithë përdoruesit, duhet të siguroni që parametri umask merret në konsideratë kur ekzekutohen skedarët e mjedisit të shell-it, siç është treguar në /etc/profile. Qasja e duhur është krijimi i një skenari të shell-it me emrin umask.sh në katalogun /etc/profile.d dhe të specifikoni umask-un që dëshironi të përdorni në këtë skenar të shell-it. Nëse umask-u ndryshon në këtë skedar, ai aplikohet për të gjithë përdoruesit pas hyrjes në server.
Një alternativë për të vendosur umask përmes /etc/profile dhe skedarëve të lidhur, ku ai aplikohet për të gjithë përdoruesit që hyjnë në sistem, është të ndryshoni cilësimet umask në një skedar me emrin .profile, i cili krijohet në katalogun e shtëpisë së çdo përdoruesi.
Cilësimet e aplikuara në këtë skedar zbatohen vetëm për përdoruesin e veçantë; prandaj, kjo është një metodë e mirë nëse keni nevojë për më shumë detaje. Personalish më pëlqen kjo funksionalitet për të ndryshuar vlerën umask të paracaktuar për përdoruesin root në 027, ndërsa përdoruesit e zakonshëm punojnë me umask-in e paracaktuar 022.
Puna me atribute të avancuara të përdoruesit
Ky është kapitulli përfundimtar rreth të drejtave në Linux.
Kur punoni me lejet, gjithmonë ka një lidhje midis objektit të përdoruesit ose grupit dhe lejeve që këto objekte përdoruesi ose grupi kanë për skedarin ose katalogun. Një metodë alternative për të mbrojtur skedarët në serverin Linux është puna me atributet.
Atributet funksionojnë pavarësisht nga përdoruesi që i qaset skedarit.
Ashtu si në rastin e ACL, për atributet e skedarit mund të jetë e nevojshme të aktivizoni parametrin mount.
kjo është një opsion user_xattr. Nëse merrni një mesazh "operacioni nuk mbështetet" kur punoni me atributet e avancuara të përdoruesit, sigurohuni që të vendosni parametrin mount në skedarin /etc/fstab.
Shumë atribute janë dokumentuar. Disa atribute janë të disponueshme, por ende nuk janë implementuar. Mos i përdorni ato; ato nuk do t'ju sjellin asgjë.
Më poshtë janë atributet më të dobishme që mund të aplikoni:
A Ky atribut siguron që koha e aksesit në skedar të mos ndryshojë.
Përgjithësisht, çdo herë që një skedar hapet, koha e aksesit duhet të regjistrohet në metadatat e skedarit. Kjo ndikon negativisht në performancë; prandaj për skedarët që aksesohet rregullisht, atributi A mund të përdoret për të çaktivizuar këtë funksion.
a Ky atribut lejon të shtoni, por jo të fshini skedarin.
c Nëse përdorni një sistem skedarësh në të cilin mbështetet kompresimi në nivelin e volumit, ky atribut skedari siguron që skedari do të kompresohet kur të aktivizohet mekanizmi i kompresimit për herë të parë.
D Ky atribut siguron që ndryshimet në skedarët të shkruhen menjëherë në disk, dhe jo fillimisht në memorie. Ky është një atribut i dobishëm në skedarët e rëndësishëm të bazës së të dhënave, që siguron që ato mos humbasin midis caches së skedarëve dhe hard disku.
d Ky atribut siguron që skedari nuk do të ruhet në kopje rezervë, ku përdoret utilitarja e dump.
I Ky atribut aktivizon indeksimin për katalogun në të cilin është aktivizuar. Kjo siguron qasje më të shpejtë në skedarë për sistemet e skedarëve primitive, si Ext3, të cilat nuk përdorin një bazë të dhënash b-tree për qasje të shpejtë në skedarë.
i Ky atribut e bën skedarin të pandryshueshëm. Për pasojë, nuk mund të bëhen ndryshime në skedar, gjë që është e dobishme për skedarë që kërkojnë mbrojtje shtesë.
j Ky atribut garanton që në sistemin e skedarëve ext3, skedari shkruhet fillimisht në ditar dhe më pas në blloqet e të dhënave në hard disk.
s Për të rishkruar blloqet, në të cilat skedari ishte ruajtur, me 0 pas fshirjes së skedarit. Kjo garanton që rikuperimi i skedarit është e pamundur pasi ai të jetë fshirë.
u Ky atribut ruan informacionin mbi fshirjen. Kjo lejon zhvillimin e një utiliti, i cili punon me këtë informacion për të shpëtuar skedarët e fshirë.
Nëse dëshironi të aplikoni atributet, mund të përdorni komandën chattr. Për shembull, përdorni chattr +s somefile, për të aplikuar atributet në somefile. Dëshironi të hiqni atributin? Atëherë përdorni chattr -s somefile, dhe ai do të hiqet. Për të marrë një përmbledhje të të gjitha atributeve që aktualisht aplikohen, përdorni komandën lsattr.
CV
Në këtë artikull, mësuat si të punoni me lejet. Lexuat për tre lejet kryesore, lejet e zgjeruara dhe se si të aplikoni listat ACL në sistemin e skedarëve. Po ashtu mësuat si të përdorni parametrin umask për të aplikuar lejet e paracaktuar. Në fund të këtij artikulli, mësuat si të përdorni atributet e zgjeruara nga përdoruesi për të aplikuar një nivel shtesë sigurie në sistemin e skedarëve.
Nëse ju pëlqeu ky përkthim, ju lutem na shkruani në komentet. Do të ketë më shumë motivim për të bërë përkthime të dobishme.
Në artikull kam korrigjuar disa gabime shtypi dhe gramatikore. Kam zvogëluar disa paragrafë të voluminous në më të vegjël për lehtësinë e perceptimit.
Në vend të "Vetëm dikush me të drejtat administrative mbi katalogun mund të aplikojë lejen për ekzekutimin." kam korrigjuar në "Vetëm dikush me të drejtat e shkrimit në katalog mund të aplikojë lejen për ekzekutimin.", që do të ishte më e saktë.
Falënderime për vërejtjet .
Zëvendësova:
Nëse nuk jeni pronari i përdoruesit, shell do të kontrollojë nëse jeni anëtar i grupit, i cili gjithashtu quhet grupi i skedarit.Në:
Nëse nuk jeni pronari i skedarit, shell-i do të kontrollojë nëse jeni anëtar i grupit, i cili ka leje për këtë skedar. Nëse jeni anëtar i këtij grupi, merrni akses në skedar me lejet që janë caktuar për grupin, dhe shell-i do të ndalojë kontrollin.Faleminderit për vërejtjen
Burimi: habr.com
