Përshëndetje të gjithëve. Ky është një përkthim i një artikulli nga libri RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 dhe EX300.
Nga unë: Shpresoj që artikulli të jetë i dobishëm jo vetëm për fillestarët, por edhe për t'u ndihmuar administratorëve më me përvojë të rregullojnë njohuritë e tyre.
Pra rregullojmë.

Për të aksesuar skedarët në Linux, përdoren lejet. Këto leje i caktohen tre objekteve: pronarit të skedarit, pronarit të grupit dhe një objekti 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ë pasqyrë të koncepteve themelore, pas së cilës diskutohet për lejet speciale (Special permissions) dhe listat e kontrollit të aksesit (ACL). Në fund të këtij artikulli shqyrtohet konfigurimi i të drejtave të aksesit sipas parazgjedhjes përmes umask, si dhe menaxhimi i atribuive të zgjeruara të përdoruesit.
Menaxhimi i pronësisë së skedarëve
Para se të diskutojmë për lejet, duhet të dini për rolin e pronarit të skedarit dhe dosjes. Pronësia e skedarëve dhe dosjeve është thelbësore për punën me lejet. Në këtë seksion, së pari do të mësoni se si mund të shihni pronarin. Pastaj do të mësoni si të ndryshoni pronarin e grupit dhe përdoruesit për skedarët dhe dosjet.
Shfaqja e pronarit të skedarit ose direktorisë
Në Linux, secili skedar dhe çdo dosje ka dy pronarë: përdoruesi dhe pronari i grupit.
Këta pronarë vendosen në momentin e krijimit të skedarit ose dosjes. Përdoruesi që krijon skedarin bëhet pronar i këtij skedari, ndërsa grupi primar, në të cilin është ky përdorues, gjithashtu bëhet pronar i këtij skedari. Për të përcaktuar nëse keni si përdorues të drejtat e aksesit në skedar apo dosje, shell kontrollon pronësinë e tyre.
Kjo ndodh në rendin e mëposhtëm:
- Shell kontrollon nëse jeni pronari i skedarit që dëshironi të aksesoni. Nëse jeni ky pronar, ju merrni lejet dhe shell ndalon kontrollin.
- Nëse nuk jeni pronari i skedarit, shell do të kontrollojë nëse jeni anëtar i grupit që ka lejet për këtë skedar. Nëse jeni anëtar i këtij grupi, ju do të merrni akses në skedar me lejet që janë vendosur për grupin, dhe shell do të ndalojë kontrollin.
- Nëse nuk jeni as përdorues as pronar i grupit, ju 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 katalogët në katalogun /home.
[root@server1 home]# ls -l
total 8
drwx------. 3 bob bob 74 Shk 6 10:13 bob
drwx------. 3 caroline caroline 74 Shk 6 10:13 caroline
drwx------. 3 fozia fozia 74 Shk 6 10:13 fozia
drwx------. 3 lara lara 74 Shk 6 10:13 lara
drwx------. 5 lisa lisa 4096 Shk 6 10:12 lisa
drwx------. 14 user user 4096 Shk 5 10:35 user
Me komandën ls mund të tregoni pronarin e skedarëve në këtë katalog. Ndonjëherë mund të jetë e dobishme të merrni një listë të gjithë skedarëve në sistem ku si pronar është ky përdorues apo 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, komandë e mëposhtme tregon të gjitha skedarët për të cilët pronar është përdoruesi linda:
find / -user lindaMund të përdorni gjithashtu find për të kërkuar skedarët ku një grup i caktuar është pronar.
Për shembull, komandat e mëposhtme kërkojnë të gjitha skedarët që i përkasin grupit përdoruesit:
find / -group usersNdryshimi i pronarit
Për të aplikuar lejet e duhura, gjëja e parë që duhet marrë parasysh është pronësia. Këtë e bën komanda chown. Sintaksa e kësaj komande është e thjeshtë për tu kuptuar:
chown kush çfarëPër shembull, komandat e mëposhtme ndryshojnë pronarin e katalogut /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 ta merrni me mend se çfarë bën, sepse kjo opsion është e disponueshme dhe për shumë komanda të tjera. Kjo ju lejon të vendosni pronarin në mënyrë rekursive, që ju lejon të vendosni pronarin e katalogut aktual dhe të gjithë asaj që ndodhet poshtë. Komanda e mëposhtme ndryshon pronarin për katalogun /home dhe gjithçka që gjendet nën të, 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
Le të ekzekutojmë:
[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#
Tani përdoruesi lisa është bërë pronar i katalogut 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 janë dy mënyra për të ndryshuar pronësinë e grupit. Ju mund ta bëni këtë duke përdorur chown, por ka një komandë të veçantë të quajtur chgrp, e cila e kryen këtë punë. Nëse dëshironi të përdorni komandën chown, përdorni . ose : para emrit të grupit.
Komanda e mëposhtme ndryshon ndonjë pronar të grupit /home/account në grupin account:
chown .account /home/account
Ju mund të përdorni chown për të ndryshuar pronarin e përdoruesit dhe/ose grupit në disa mënyra. Këtu janë disa shembuj:
- chown lisa myfile1 përshkruan përdoruesin lisa si pronar të skedarit myfile1.
- chown lisa.sales myfile përshkruan përdoruesin lisa si pronar të skedarit myfile, si dhe e vendos grupin sales si pronar të atij skedari.
- chown lisa:sales myfile është e njëjtë me 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 është e njëjtë me komandën e mëparshme.
Ju mund të përdorni komandën chgrp, për të ndryshuar pronarin e grupit. Le të shikojmë shembullin e mëposhtëm, ku mund të përdorni chgrp për të vendosur grupin sales si pronar të direktorisë account:
chgrp .sales /home/accountSi në rastin e chown, ju mund të përdorni opsionin -R me chgrp, si dhe të ndryshoni pronarin e grupit në mënyrë rekurzive.
Kuptimi i pronarit në të njëjtën mënyrë
Ju do të keni vënë re se kur një përdorues krijon një skedë, aplikohet pronësia e paracaktuar.
Përdoruesi që krijon një skedë automatikisht bëhet pronar i kësaj skede, dhe grupi kryesor i këtij përdoruesi automatikisht bëhet pronar i kësaj skede. Zakonisht, kjo është gruaja e cila është e specifikuar në skedën /etc/passwd si grupi kryesor i përdoruesit. Megjithatë, nëse përdoruesi është anëtar i disa grupeve, ai mund të ndryshojë grupin efektiv kryesor.
Për të treguar grupin aktual efektiv kryesor, përdoruesi mund të përdorë komandën groups:
[root@server1 ~]# groups lisa
lisa : lisa account sales
Nëse përdoruesi aktual linda dëshiron të ndryshojë grupin efektiv kryesor, ai do të përdorë komandën newgrp, e cila ndjeket nga emri i grupit që ai dëshiron të vendosë si grupin e ri efektiv kryesor. Pas përdorimit të komandës newgrp grupi kryesor do të aktivizohet derisa përdoruesi të japë komandën exit ose të dalë nga sistemi.
Më poshtë tregohet se si përdoruesi linda e përdor këtë komandë, ku grupi kryesor u bë 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ë gjithë skedarët e rinj që krijohen nga përdoruesi do ta kenë këtë grup si grupin e pronarit. Për të kthyer në konfigurimin origjinal të grupit primar, përdorni exit.
Për të pasur mundësinë të përdorni komandën newgrp, përdoruesi duhet të jetë anëtar i grupit që dëshiron të përdorë si primar. Për më tepër, fjalëkalimi i grupit mund të përdoret për grupin me komandën gpasswd. Nëse perdoruesi përdor komandën newgrp, por nuk është anëtar i grupit të synuar, atshti-shell-i kërkon fjalëkalimin e grupit. Pas futjes së fjalëkalimit të saktë të grupit, do të vendoset një grup primar efektiv i ri.
Menaxhimi i të drejtave kryesore
Sistemi i lejeve të aksesit Linux u shpik në vitet 1970. Duke qenë se nevojat për përpunim ishin të kufizuara në ato vite, sistemi bazë i lejeve ishte mjaft i kufizuar. Ky sistem lejesh përdor tre leje që mund të aplikohen në skedarë dhe katalogë. Në këtë seksion, do të mësoni si të përdorni dhe ndryshoni këto leje.
Kuptimi i të drejtave për të lexuar, shkruar dhe ekzekutuar
Tre lejet kryesore ju lejojnë të lexoni, shkruani dhe ekzekutoni skedarë. Efekti i këtyre lejeve ndryshon kur aplikohet në skedarë ose katalogë. Në lidhje me një skedar, leja për të lexuar ju jep të drejtën të hapni skedarin për ta lexuar. Si rezultat, mund ta lexoni përmbajtjen e tij, por do të thotë se kompjuteri juaj mund të hapë skedarin për të bërë diçka me të.
Një skedar programi që ka nevojë për akses në një bibliotekë duhet, për shembull, të ketë leje për të lexuar këtë bibliotekë. Nga kjo dedukohet se leja për të lexuar është leja më thelbësore që ju nevojitet për të punuar me skedarët.
Në lidhje me katalogun, lehtësimi i leximit lejon shfaqjen e përmbajtjes së këtij katalogu. Duhet të dini se kjo leje nuk ju lejon të lexoni skedarët në katalog. Sistemi i lejes në Linux nuk njeh trashëgiminë, dhe mënyra e vetme për të lexuar një skedar është të përdorni lejet për lexim për atë skedar.
Siç mund ta kuptoni, leja për të shkruajtur nëse aplikohet në një skedar, ju lejon të shkruani në skedar. Në terma të tjerë, ajo lejon ndryshimin e përmbajtjes së skedarëve ekzistues. Megjithatë, ajo nuk lejon krijimin ose fshirjen e skedarëve të rinj ose ndryshimin e të drejtave të qasjes për skedarin. Për këtë, ju nevojitet të jepni leje për të shkruar në katalogun ku dëshironi të krijoni skedarin. Në katalogë, kjo leje gjithashtu lejon krijimin dhe fshirjen e nënkatalogëve të rinj.
Leja për ekzekutimin është ajo që ju nevojitet për të ekzekutuar një skedar. Ajo nuk do të vendoset kurrë automatikisht, gjë që e bën Linux pothuajse të papërshtatshëm për viruset. Vetëm dikush me të drejta shkruese në katalog mund të aplikojë lejen për ekzekutim.
Më poshtë përmbledh përdorimin e lejeve themelore:

Përdorimi i chmod
Për menaxhimin e të drejtave përdoret komanda chmod. Kur përdorni chmod mund të vendosni lejet për përdoruesin (user), grupin (group) dhe të tjerët (other). Ju mund të përdorni këtë komandë në dy mënyra: mënyra relative dhe mënyra absolute. Në mënyrën absolute, tre numra përdoren për të vendosur lejet themelore.

Kur konfiguroni lejet, llogaritni vlerën që ju nevojitet. Nëse dëshironi të vendosni lexim, shkruarje 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 në vazhdim chmod:
chmod 755 /somefileKur përdorni chmod në këtë mënyrë, të gjitha lejet aktuale zëvendësohen nga lejet që keni vendosur.
Nëse dëshironi të ndryshoni lejet në lidhje me lejet aktuale, mund të përdorni chmod në mënyrë relative. Kur përdorni chmod në mënyrë relative, punoni me tre tregues për të treguar se çfarë dëshironi të bëni:
- Fillimisht, tregoni 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, ju përdorni operatorin për të shtuar ose hequr lejet nga moda aktuale ose t'i vendosni ato plotësisht.
- Në fund, ju përdorni r, w dhe x, për të specifikuar cilat leje dëshironi të vendosni.
Kur ndryshoni lejet në modën relative, mund të shtyni një pjesë të "ku", për të shtuar ose hequr leje për të gjitha objektet. Për shembull, kjo komandë shton lejen për të ekzekutuar për të gjithë përdoruesit:
chmod +x somefileKur punoni në modën relative, gjithashtu mund të përdorni komanda më të komplikuara. Për shembull, kjo komandë shton lejen për të shkruar në grup dhe heq leximin për të tjerët:
chmod g+w,o-r somefileKur përdoret chmod -R o+rx /data ju vendosni lejen për të ekzekutuar për të gjitha direktorët, si dhe për skedaret në direktorinë /data. Nëse doni të vendosni lejen për të ekzekutuar vetëm për direktorët, dhe jo për skedaret, përdorni chmod -R o+ rX /data.
Të dhënat e sipërme X garantojnë që skedarët nuk do të kenë leje për ekzekutim, nëse skedari nuk ka vendosur më parë leje për ekzekutimin e disa objekteve. Kjo e bën X një mënyrë më të arsyeshme për të punuar me lejet për ekzekutim; kjo do të shmangë vendosjen e kësaj leje për skedarë ku ajo nuk është e nevojshme.
TĂ« drejtat e avancuara
Përveç lejeve themelore, të cilat sapo keni lexuar, në Linux ka gjithashtu një grup të drejtash 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ë përfshijnë ato dhe si t'i konfiguroni.
Kuptimi i të drejtave të avancuara SUID, GUID dhe sticky bit
Ka tre leje të avancuara. E para është leja për të vendosur identifikuesin e përdoruesit (SUID). Në disa raste të veçanta, mund ta aplikoni këtë leje për skedarët ekzekutivë. Për default, përdoruesi që ekzekuton skedarin ekzekutiv e nis këtë skedar me lejet e tij.
Për përdoruesit e zakonshëm, kjo zakonisht nënkupton se përdorimi i programit është i kufizuar. Megjithatë, në disa raste, përdoruesi kërkon leje speciale, vetëm për të realizuar një detyrë të caktuar.
Merrni parasysh, për shembull, situatën kur përdoruesi duhet të ndryshojë fjalëkalimin. Për këtë, përdoruesi duhet ta regjistrojë fjalëkalimin e tij të ri në skedarin /etc/shadow. Megjithatë, ky skedar nuk është i disponueshëm për shkrim për përdoruesit që nuk kanë të drejta root:
root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow
Leja SUID ofron një zgjidhje për këtë problem. Në utilitarin /usr/bin/passwd, kjo leje aplikohet si parazgjedhje. Kjo do të thotë se gjatë ndryshimit të fjalëkalimit, përdoruesi përkohësisht merr të drejtat root, duke i lejuar atij të shkruajë në skedarin /etc/shadow. Ju mund të shihni lejen SUID në ls -l si s pozitë, 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 e njëjta kohë ka potencialisht rrezik. Nëse aplikohet gabimisht, mund të jepni aksese root aksidentalisht. Prandaj, rekomandoj ta përdorni këtë me kujdes maksimale.
Shumicës së administratorëve kurrë nuk do t'u nevojitet ta përdorin; do ta shihni atë vetëm në disa skedarë ku sistemi operativ duhet ta vendosë atë si parazgjedhje.
Leja tjetër e veçantë është identifikuesi i grupit (SGID). Kjo leje ka dy efekte. Kur aplikohet në një skedar ekzekutiv, i jep përdoruesit që e ekzekuton skedarin, lejet e pronarit të grupit të atij skedari. Kështu, SGID mund të kryejë më shumë apo më pak të njëjtën gjë si SUID. Megjithatë, për këtë qëllim, SGID përdoret praktikisht pak.
Ashtu siç ndodh me lejen SUID, SGID aplikohet në disa skedarë sistemorë si një cilësim parazgjedhës.
Kur aplikohet në katalog, SGID mund të jetë i dobishëm, sepse mund ta përdorni për të vendosur grupin e pronarit si grupin e përparësisë për skedarët dhe nënkatalogët e krijuar në këtë katalog. Në mënyrë të paracaktuar, kur një përdorues krijon një skedar, grupi i tij i parë efektiv caktohet si grupi pronar për atë skedar.
Kjo nuk është gjithmonë shumë e dobishme, veçanërisht sepse përdoruesit në Red Hat/CentOS kanë si grup të parë grupin me të njëjtin emër si përdoruesi vetë, dhe nga të cilët përdoruesi është anëtar i vetëm. Prandaj, skedarët që krijon përdoruesi do të jenë automatikisht skedarë për qasje grupore.
Imagjinoni një situatë ku përdoruesit linda dhe lori punojnë në kontabilitet dhe janë anëtarë të grupit account. Në mënyrë të paracaktuar, këta përdorues janë anëtarë të një grupi privat, anëtari i vetëm i të cilit janë ata. Megjithatë, të dy përdoruesit janë gjithashtu anëtarë të grupit account, por gjithashtu si një grup sekondar.
Situata e parazgjedhur është se kur nd cualquiera nga këta përdorues krijon një skedar, grupa kryesore bëhet pronar. Prandaj, natyrisht, linda nuk mund të aksesojë skedarët e krijuar nga lori dhe anasjelltas. Megjithatë, nëse krijoni një katalog të ndarë grupi (le të themi, /groups/account) dhe siguroheni që leja SGID aplikohet për këtë katalog dhe që llogaria e grupit është caktuar si pronar i grupit për këtë katalog, të gjitha skedarët e krijuar në këtë katalog dhe në të gjithë nënkatalogët e tij gjithashtu marrin grupin account si pronar të grupit sipas parazgjedhjes.
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 shikohet 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 treti nga lejet speciale është bit-i i ngjitës. Ky leje është i dobishëm për të mbrojtur skedarët nga fshirja e rastësishme në një mjedis ku disa përdorues kanë të drejta për të shkruar në të njëjtin direktor. Nëse aplikohet bit-i i ngjitës, përdoruesi mund të fshijë skedarin vetëm nëse ai është përdoruesi-pronar i skedarit ose i direktorisë ku ndodhet skedari. Për këtë arsye, ai aplikohet si leje e zakonshme për direktorinë /tmp dhe mund të jetë i dobishëm gjithashtu për direktorët e grupeve të përbashkëta.
Pa bit-in e ngjitës, nëse një përdorues mund të krijojë skedarë në një direktor, ai gjithashtu mund të fshijë skedarët nga ky direktor. Në një mjedis grupor publik, kjo mund të jetë e bezdisshme. Imagjinoni përdoruesit linda dhe lori, të dy që kanë të drejta për të shkruar në direktorën /data/account dhe marrin këto leje përmes anëtarësimit në grupin account. Prandaj, linda mund të fshijë skedarët e krijuar nga lori, dhe anasjelltas.
Kur aplikoni bit-in e ngjitës, përdoruesi mund të fshijë skedarët vetëm nëse plotësohet një nga kushtet e mëposhtme:
- Përdoruesi është pronari i skedarit;
- Përdoruesi është pronari i direktorës ku ndodhet skedari.
Kur përdoret ls -l, mund të shihni bitin sticky si t në pozitën ku zakonisht shihni lejen për ekzekutim për të tjerët:
[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/
Zbatimi i të drejtave të avancuara
Për të aplikuar SUID, SGID dhe bitin sticky, mund të përdorni gjithashtu chmod. SUID ka një vlerë numerike 4, SGID ka një vlerë numerike 2, dhe bitin sticky ka një vlerë numerike 1.
Nëse dëshironi të aploni këto leje, duhet të shtoni një argument katërshifror në chmod, cifra e parë i referohet lejeve speciale. Një linjë e tillë 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 jotakim, nëse keni nevojë të shihni të drejtat aktuale që janë vendosur, para se të punoni me chmod në mënyrë absolute. (Rrezikoni të mbivendosni lejet nëse nuk e bëni këtë.) Kështu që unë rekomandoj të punoni në mënyrë relative, 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 bitin sticky përdorni chmod +t, dhe pastaj emri i skedarit ose katalogut për të cilin dëshironi të vendosni lejet.
Tabela përmbledh çdo gjë që është e rëndësishme të dini për menaxhimin e lejeve speciale.

Shembulli i punës me të drejtat speciale
Në këtë shembull, përdorni leje speciale për të lehtësuar ndarjen e skedarëve mes anëtarëve të grupit në katalogun e përbashkët. Ju caktoni ID-bitin e identifikuesit të vendosur të grupit, si dhe bitin 'sticky', dhe shihni se pas vendosjes së tyre shtohen funksione që lehtësojnë bashkëpunimin e anëtarëve të grupit.
- Hapni terminon, ku jeni përdoruesi linda. Mund të krijoni përdoruesin 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. Ekzekutoni cd /data/sales, për të kaluar në katalogun sales. Ekzekutoni touch linda1 dhe touch linda2, për të krijuar dy skedarë bosh, pronar i të cilëve është linda.
- Ekzekutoni su â lisa pĂ«r tĂ« kaluar pĂ«rdoruesin aktual nĂ« pĂ«rdoruesin lisa, i cili gjithashtu Ă«shtĂ« anĂ«tar i grupit sales.
- Ekzekutoni cd /data/sales dhe nga ky katalog ekzekutoni ls -l. Do të shihni dy skedarë që janë krijuar nga përdoruesi linda dhe i përkasin grupit linda. Ekzekutoni rm -f linda*. Kjo do të fshijë të dy skedarët.
- Ekzekutoni touch lisa1 dhe touch lisa2, për të krijuar dy skedarë që i takojnë përdoruesit lisa.
- Ekzekutoni su â pĂ«r tĂ« rritur privilegjet tuaja nĂ« nivelin root.
- Ekzekutoni chmod g+s,o+t /data/sales, për të instaluar bitin e identifikatorit të grupit (GUID) si dhe bitin sticky në katalogun e grupit të përgjithshëm.
- Ekzekutoni su â linda. Pastaj ekzekutoni touch linda3 dhe touch linda4. Tani duhet tĂ« shihni se dy skedarĂ«t qĂ« krijuat i pĂ«rkasin grupit sales, i cili Ă«shtĂ« pronari i grupit tĂ« katalogut /data/sales.
- Ekzekutoni rm -rf lisa*. Sticky bit parandalon eliminimin e këtyre skedarëve nga emri i përdoruesit linda, pasi ju nuk jeni pronari i këtyre skedarëve. Kini parasysh se nëse përdoruesi linda është pronar i katalogut /data/sales, ai mund ta bëjë në çdo rast këtë eliminim!
Menaxhimi i ACL (setfacl, getfacl) në Linux
Edhe nëse të drejtat e zgjeruara, të diskutuar më sipër, shtojnë funksionalitet të dobishëm në mënyrën se si 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ë funksionalitet. Përveç kësaj, ata lejojnë administratorët të vendosin lejet e paracaktuara në një mënyrë të ndërlikuar, ku lejet e vendosura mund të ndryshojnë në katalogë të ndryshëm.
Kuptimi i ACL
Megjithëse nën-sistemi i ACL i shton funksionalitete të shkëlqyera serverit tuaj, ai ka një disavantazh: jo të gjitha mjeteve u ofrohet mbështetje për të. Si pasojë, mund të humbni konfigurimet e ACL kur kopjoni ose lëvizni skedarë, dhe softueri për backup mund të mos e ruajë konfigurimin e ACL.
Mjeti tar nuk mbështet ACL. Për të siguruar që konfigurimet e ACL nuk humbin gjatë krijimit të një kopje rezervë, përdorni star përveç tar. star funksionon me të njëjtin parametrat si tar; thjesht shton mbështetje për konfigurimet e ACL.
gjithashtu mund të krijoni një kopje rezervë të ACL me getfacl, e cila mund të rikthehet me komandën setfacl. Për të krijuar një kopje rezervë, përdorni getfacl -R /directory > file.acls. Për të rikthyer konfigurimet nga skedari i kopjes rezervë, përdorni setfacl --restore=file.acl.
Mungesa e mbështetjes nga disa mjete nuk duhet të jetë një problem. Listat ACL shpesh aplikohen në katalogë si një masë strukturore, e jo në skedarë të veçantë.
Prandaj, ato do të jenë të paktë, vetëm disa, të aplikuara në vende të mençura në sistemin e skedarëve. Prandaj, rikthimi i listave origjinale të ACL, me të cilat keni punuar, është relativisht i lehtë, edhe nëse software-i juaj për backup 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ë nevojitet të përgatitni sistemin e skedarëve për mbështetje të ACL. Duke qenë se meta të dhënash të sistemit të skedarëve duhet të zgjerohen, nuk ka gjithmonë mbështetje për ACL si të paracaktuar në sistemin e skedarëve. Nëse gjatë konfigurimit të listave ACL për sistemin e skedarëve merrni mesazhin «operimi 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ë montohet me mbështetje për ACL si të paracaktuar.
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 duhet getfacl. Komanda ls -l nuk tregon asnjë ACL ekzistues; thjesht tregon + pas listës së të drejtave, e cila tregon se listat e ACL aplikohen gjithashtu për skedarin.
Para se të konfiguroni listat ACL, gjithmonë është e dobishme të tregoni cilësimet aktuale të ACL duke përdorur getfacl. Më poshtë në shembull, mund të shihni të drejtat aktuale të aksesit, siç tregohet me ls -l, ashtu siç tregohet me getfacl. Nëse hedh një vështrim mjaft të afërt, do të shohësh që informacioni i treguar është saktësisht i njëjtë.
[root@server1 /]# ls -ld \/dir\ndrwxr-xr-x. 2 root root 6 Feb 6 11:28 \/dir
[root@server1 /]# getfacl \/dir
getfacl: Po hiqet '/' i parë nga emrat e rrugës absolute
# skedari: dir
# pronari: root
# grupi: root
user::rwx
group::r-x
other::r-x
Si rezultat i ekzekutimit të komandës getfacl më poshtë shihet se të drejtat janë treguar për tri objekte të ndryshme: përdoruesi, grupi dhe të tjerët. Tani le të shtojmë ACL për t'i dhënë të drejtat për lexim dhe ekzekutim grupit sales. Komanda për këtë 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 informon komandën të vendosë ACL për lexim dhe ekzekutim (rx) për grupin (g) shitje. Më poshtë mund të shihni si duket grupi, si dhe daljen e komandës getfacl pas ndryshimit të parametrave aktuale të ACL.
[root@server1 /]# setfacl -m g:shitje:rx /dir
[root@server1 /]# getfacl /dir
getfacl: Po heqim '/' që e paraqet rrugën absolute
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
group:shitje:r-x
mask::r-x
other::r-x
Tani që kuptoni se si të vendosni një 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 i jep leje përdoruesit linda në dosjen /data, pa e bërë atë pronar dhe pa ndryshuar emrin aktual të pronarit.
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 të mundur vendosjen e ACL për të gjitha skedarët dhe nënkatalogët që aktualisht ekzistojnë në dosjen ku vendosni ACL. Rekomandohet të përdorni gjithmonë këtë opsion kur ndryshoni listat e ACL për katalogët ekzistues.
Puna me ACL parazgjedhur
Një nga përfitimet e përdorimit të listave ACL është se mund të jepni leje për shumë përdorues ose grupe në katalog. Një tjetër përfitim është se mund të përfshini trashëgiminë, duke punuar me ACL-në parazgjedhur.
Duke vendosur ACL të paracaktuar, ju do të përcaktoni lejet që do të vendosen për të gjitha elementet e reja që krijohen në katalog. Mbani mend se ACL të paracaktuar nuk ndryshon lejet për skedarët dhe ndakatalogët ekzistues. Për t'i ndryshuar ato, duhet të shtoni edhe një ACL të zakonshëm!
ĂshtĂ« e rĂ«ndĂ«sishme tĂ« dihet. NĂ«se dĂ«shironi tĂ« pĂ«rdorni ACL pĂ«r tĂ« konfiguruar qasjen e disa pĂ«rdoruesve ose grupeve nĂ« tĂ« njĂ«jtin katalog, duhet ta vendosni ACL dy herĂ«. Fillimisht pĂ«rdorni setfacl -R -m, pĂ«r tĂ« ndryshuar ACL pĂ«r skedarĂ«t aktualĂ«. Pastaj pĂ«rdorni setfacl -m d:, pĂ«r t'u kujdesur pĂ«r tĂ« gjitha elementet e reja qĂ« gjithashtu do tĂ« krijohen.
Për të vendosur ACL të paracaktuar, ju nevojitet vetëm 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 shitjes të lexojë dhe ekzekutojë gjithçka që do të krijohet ndonjëherë në katalogun /data.
Kur përdorni listat ACL të paracaktuar, gjithashtu mund të jetë e dobishme të vendosni ACL për të tjerë. Zakonisht kjo nuk ka shumë kuptim, sepse mund të ndryshoni lejet për të tjerë duke përdorur chmod. Megjithatë, ajo që nuk mund të bëni është chmod, të përcaktoni të drejtat që duhet t'u jepen përdoruesve të tjerë për çdo skedar të ri që ndonjëherë do të krijohet. Nëse dëshironi që të tjerët të mos kenë leje për asnjë gjë që krijohet në /data, për shembull, përdorni setfacl -m d:o::- /data.
ACL dhe lejet zakonore nuk janë gjithmonë të integruara mirë. Problemet mund të ndodhin nëse keni aplikuar ACL të paracaktuar në një katalog dhe pastaj elemente janë shtuar në këtë katalog, dhe më pas përpiqeni të ndryshoni lejet zakonore. Ndryshimet që aplikohen në lejet zakonore nuk do të reflektohen mirë në vlerësimin e ACL. Për të shmangur problemet, fillimisht vendosni lejet zakonore dhe pastaj vendosni ACL të paracaktuar (dhe pas kësaj, përpiquni të mos i ndryshoni përsëri).
Shembulli i menaxhimit të të drejtave të avancuara duke përdorur ACL
Në këtë shembull do të vazhdoni punën me kataloget /data/account dhe /data/sales, që keni krijuar më parë. Në shembujt e mëparshëm, ju keni siguruar që grupi sales ka leje për /data/sales, ndërsa grupi account ka leje për /data/account.
Së pari, sigurohuni që grupi account të ketë lejet për lexim në katalogun /data/sales, ndërsa grupi sales të ketë lejet për lexim në katalogun /data/account.
Pastaj, vendosni listat e ACL me parazgjedhje për të siguruar që të gjitha skedarët e rinj kanë lejet e përcaktuara siç duhet për të gjitha elementet e reja.
- Hapni terminalin.
- Ekzekutoni setfacl -m g:account:rx /data/sales dhe setfacl -m g:sales:rx /data/account.
- Ekzekutoni getfacl, për të siguruar që të drejtat e aksesit të jenë vendosur siç dëshironit.
- Ekzekutoni setfacl -m d:g:account:rwx,g:sales:rx /data/sales, për të vendosur ACL me parazgjedhje për katalogun sales.
- Shtoni ACL me parazgjedhje për katalogun /data/account, duke përdorur setfacl -m d:g:sales:rwx,g:account:rx /data/account.
- Sigurohuni që cilësimet e ACL të jenë të vlefshme, duke shtuar një skedar të ri në /data/sales. Ekzekutoni touch /data/sales/newfile dhe ekzekutoni getfacl /data/sales/newfile për të kontrolluar lejet aktuale.
Vendosja e të drejtave me parazgjedhje përmes umask
Më lart keni mësuar si të punoni me ACL të parazgjedhur. Nëse nuk po përdorni ACL, ka një opsion në shell që përcakton të drejtat e parazgjedhura që do të merrni: umask (maskë e kundërt). Në këtë seksion do të mësoni si të ndryshoni lejet e parazgjedhura me përdorimin e umask.
Me imagjinoni se gjatë krijimit të një skedari të ri, disa leje të paracaktuara vendosen. Këto leje përcaktohen nga konfigurimi umask. Ky parametër i shell-it aplikohet për të gjithë përdoruesit kur ata hyjnë në sistem. Në parametër umask përdoret një vlerë numerike, e cila hiqet nga lejet maksimale që mund të vendosen automatikisht për skedarin; përveç për skedarët maksimalja është 666, ndërsa për katalogët është 777.
Megjithatë, disa përjashtime i përkasin këtij rregulli. Ju mund të gjeni një përmbledhje të plotë të konfigurimeve umask në tabelën më poshtë.
Nga numrat e përdorur në umask, ashtu si në rastin e argumenteve numerike për komandën chmod, numri i parë i referohet lejeve të përdoruesit, numri i dytë i referohet lejeve të grupit, dhe i fundit i referohet lejeve të paracaktuara për të tjerët. Vlera umask e paracaktuar 022 jep 644 për të gjitha skedarët e rinj dhe 755 për të gjithë katalogët e rinj të krijuar në serverin tuaj.
Një përmbledhje 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 në vijim: filloni me lejet e paracaktuara për skedarin, të vendosur në 666, dhe zbritni umask-un për të marrë lejet në fuqi. 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 konfigurimin e umask: për të gjithë përdoruesit dhe për përdoruesit e veçantë. Nëse dëshironi të vendosni umask për të gjithë përdoruesit, duhet të siguroheni që parametrat umask të merren parasysh kur fillojnë skedarët e mjedisit të Shell, siç është e përcaktuar në /etc/profile. Qasja e duhur është të krijoni një skript Shell me emrin umask.sh në direktorinë /etc/profile.d dhe të tregoni umask-un që dëshironi të përdorni në këtë skript Shell. Nëse në këtë skedar ndryshohet umask-u, ai aplikohet për të gjithë përdoruesit pasi të kenë hyrë në server.
Një alternativë për të përcaktuar umask-in përmes /etc/profile dhe skedarëve të lidhur, ku ai aplikohet për të gjithë përdoruesit që hyjnë në sistem, është ndryshimi i konfigurimeve umask në skedarin me emrin .profile, i cili krijohet në direktorinë e shtëpisë së çdo përdoruesi.
Cilësimet e aplikuara në këtë skedar vlejnë vetëm për një përdorues të veçantë; prandaj, kjo është një metodë e mirë, nëse keni nevojë për më shumë detaje. Personalish, më pëlqen kjo funksion për të ndryshuar vlerën e umask-it nga e para për përdoruesin root në 027, ndërsa përdoruesit e zakonshëm punojnë me umask-in nga e para 022.
Puna me atribute të zgjeruara për përdoruesit
Ky është një seksion përfundimtar mbi të drejtat 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 një skedar ose katalog. 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.
Si në rastin e ACL-ve, për atributet e skedarëve mund të jetë e nevojshme të aktivizoni parametrin mount.
Kjo është një mundësi user_xattr. Nëse merrni një mesazh "operacioni nuk mbështetet" kur punoni me atributet e zgjeruara për përdoruesit, sigurohuni të vendosni parametrin mount në skedarin /etc/fstab.
Shumë atribute janë dokumentuar. Disa atribute janë të disponueshme, por ende nuk janë realizuar. Mos i përdorni; ato nuk do t'ju sjellin asgjë.
Më poshtë janë atribute më të dobishme që mund të aplikoni:
A Ky atribut garanton që koha e aksessit të skedarit nuk ndryshon.
Zakonisht, sa herë që një skedar hapet, koha e aksessit duhet të shkruhet në metadatat e skedarit. Kjo ndikon negativisht në performancë; për shkak të kësaj, për skedarët që aksesohen 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.
me Nëse po përdorni një sistem skedarësh që mbështet kompresionin në nivelin e volumit, ky atribut i skedarit garanton që skedari do të kompresohet në momentin e parë të aktivizimit të mekanizmit të kompresionit.
D Ky atribut garanton që ndryshimet në skedarë shkruhen në disk menjëherë, jo në caching fillimisht. Ky është një atribut i dobishëm për skedarët e rëndësishëm në bazat e të dhënave, duke siguruar që ata të mos humbasin mes cache-it të skedarëve dhe hard diskut.
d Ky atribut garanton që skedari nuk do të ruhet në kopjet rezervë, ku përdoret utilitari i dump-it.
I Ky atribut aktivizon indeksimin për direktorinë ku është aktivizuar. Kjo siguron qasje më të shpejtë në skedarë për sisteme primare të file-ve si Ext3, të cilat nuk përdorin bazën e të dhënave B-tree për qasje të shpejtë në skedarë.
i Ky atribut bën që skedari të jetë i pandryshueshëm. Si pasojë, nuk është e mundur të bëhen modifikime në skedar, që është e dobishme për skedarët që kërkojnë mbrojtje shtesë.
j Ky atribut garanton që në sistemin e skedarëve ext3, skedari së pari shkruhet në ditar dhe më pas në blloqet e të dhënave në hard disk.
s Rishkruani blloqet ku skedari ishte ruajtur me 0 pas fshirjes së skedarit. Kjo siguron që rikuperimi i skedarit është i pamundur pasi ai është fshirë.
u Ky atribut ruan informacionin mbi fshirjen. Kjo lejon zhvillimin e një utilitari që punon me këtë informacion për të shpëtuar skedarët e fshirë.
Nëse doni 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ëshiron të fshish atributin? Atëherë përdor chattr -s somefile, dhe ai do të fshihet. Për të marrë një pasqyrë të të gjitha atributeve që po aplikohen aktualisht, përdor komandën lsattr.
Curriculum Vitae
Në këtë artikull, mësove si të punosh me lejet. Lexove mbi tre lejet kryesore, lejet e avancuara dhe se si të aplikosh listat ACL në sistemin e skedarëve. Gjithashtu, mësove se si të përdorësh parametrin umask për të aplikuar lejet e parazgjedhura. Në fund të këtij artikulli, mësove si të përdorësh atributet e zgjeruara të përdoruesit për të aplikuar një nivel shtesë sigurie në sistemin e skedarëve.
Nëse të pëlqeu ky përkthim, të lutem, shkruaj në komente. Do të ketë më shumë motivim për të bërë përkthime të dobishme.
Në artikull kam korrigjuar disa gabime të shtypura dhe gramatikore. Kam zvogëluar disa paragrafët voluminozë në më të vogla për lehtësi në perceptim.
Në vend të "Vetëm dikush me të drejta administrimi për katalogun mund të aplikojë lejen për ekzekutim." e kam korrigjuar në "Vetëm dikush me të drejta shkrimi për katalogun mund të aplikojë lejen për ekzekutim." që do të ishte më e saktë.
Faleminderit për vërejtjet .
Këtu janë ndryshimet:
Nëse nuk jeni pronar i përdoruesit, shell-i do të kontrollojë nëse jeni anëtar i grupit, i cili gjithashtu quhet grup i skedarit.Në:
Nëse nuk jeni pronari i skedarit, shell do të kontrollojë nëse jeni anëtar i grupit që ka lejet për këtë skedar. Nëse jeni anëtar i këtij grupi, ju do të merrni akses në skedar me lejet që janë vendosur për grupin, dhe shell do të ndalojë kontrollin.Faleminderit për vërejtjen
Burimi: habr.com
