Apgūstiet Linux komandu 'setfacl'

Setfacl utilīta nosaka failu piekļuves kontroles sarakstus (ACL) un katalogi. Uz komandrinda, komandu secībai seko failu secība (kurai savukārt var sekot cita komandu secība utt.).

  • Iespējas -m, un -x gaidiet ACL komandrindā. Vairāki ACL ieraksti ir atdalīti ar komatu rakstzīmēm (`,'). Iespējas -M, un -X lasīt ACL no faila vai standarta ievades. ACL ieraksta formāts ir aprakstīts sadaļā ACL ieraksti.
  • The -- set un --set-fails opcijas iestata faila vai direktorija ACL. Iepriekšējais ACL tiek aizstāts. Šīs darbības ACL ierakstiem ir jāietver atļaujas.
  • The -m (--pārveidot) un -M (--modificēt-failu) opcijas modificēt ACL a failu vai direktoriju. Šīs darbības ACL ierakstiem ir jāietver atļaujas.
  • The -x (--noņemt) un -X (--noņemt-failu) opcijas noņem ACL ierakstus. Tikai ACL ieraksti bez ilgviļņi lauki tiek pieņemti kā parametri, ja vien nav definēts POSIXLY_CORRECT.

Lasot no failiem, izmantojot -M, un -X opcijas, setfacl pieņem izvadi getfacl ražo. Katrā rindā ir ne vairāk kā viens ACL ieraksts. Pēc mārciņas zīmes (#') viss līdz rindas beigām tiek uzskatīts par komentāru.

Ja setfacl tiek izmantots failu sistēmā, kas neatbalsta ACL, setfacl darbojas ar faila režīma atļauju bitiem. Ja ACL pilnībā neietilpst atļauju bitos, setfacl modificē faila režīma atļauju bitus, lai atspoguļotu ACL pēc iespējas tuvāk, ieraksta kļūdas ziņojumu standarta kļūdai un atgriežas ar izejas statusu, kas ir lielāks par 0.

Izmantojot Setfacl

Vispirms mēģiniet izveidot pamata sarakstu savā mapē mājas direktorijs. Tā kā jūs to izmēģināt pirmo reizi, izveidojiet jaunu, ar kuru spēlēt. Tādā veidā jūs neriskēsit atslēgt sev svarīgus dokumentus.

mkdir ~/acl-test. 

Pēc tam izmantojiet setfacl, lai piešķirtu citam sistēmas lietotājam piekļuvi mapei. Setfacl izmanto -m karodziņš, lai modificētu faila piekļuves kontroles sarakstus. Tas parasti nozīmē lietotāja vai grupas pievienošanu.

setfacl -m u: lietotājvārds: rwx ~/acl-test/

The u pirms pirmais kols norāda komandu, par kuru jūs runājat par lietotājvārdu. The rwx pēc otrās dotācijas read, writuāls un execute atļaujas.

Tas pats darbojas grupām, norādot g tā vietā u pirms pirmās resnās zarnas.

setfacl -m g: grupas nosaukums: rwx ~/acl-test/

Tas darbojas tāpat kā iepriekšējais piemērs, izņemot to, ka tas piešķir atļaujas visai grupai.

The -x karogs darbojas pretēji -m. Tas atsauks piekļuvi norādītajam lietotājam vai grupai.

setfacl -x u: lietotājvārds: w ~/acl-test/

Komanda atsauc lietotājam rakstīšanas piekļuvi direktorijai.

Varat arī tieši mainīt visu pašreizējo lietotāju atļaujas. Tas ietver faila īpašnieku un visus papildu lietotājus, kuriem tika piešķirtas atļaujas. Tas ir kaut kas līdzīgs saīsnei, izmantojot esošo komandu, bet izlaižot lietotājvārdu.

setfacl -m u:: rx ~/acl-test/

Tādējādi visiem esošajiem lietotājiem tiek piešķirtas lasīšanas un izpildes atļaujas, bet tiek noņemta rakstīšanas piekļuve.

Tas pats darbojas ar -x karoga un atļauju noņemšana.

setfacl -x u:: w ~/acl-test/

Tas būtībā ir tāds pats kā iepriekšējais piemērs, apgriezts.

setfacl arī ļauj kopēt piekļuves kontroles sarakstus no viena faila uz citu. Pārliecinieties, vai jūsu lietotājam ir pilna piekļuve testa mapei, un izveidojiet divus jaunus failus, ar kuriem strādāt.

pieskarieties ~/acl-test/file{1,2}.txt. 

Tagad mainiet pirmā faila atļaujas.

setfacl -m u: lietotājvārds: rx ~/acl-text/file1.txt. 

Tagad varat ievadīt getfacl, pašreizējās ACL informācijas izgūšanas komandas, rezultātus setfacl.

getfacl ~/acl-test/file1.txt | setfacl --set-file=- ~/acl-text/file2.txt. 

Otrajam aizpildījumam būs tādas pašas atļaujas kā pirmajam.

Visbeidzot, varat noņemt visus paplašinātos ACL ierakstus, kas izveidoti ar komandu. Tādējādi failam tiks atstātas sākotnējās lietotāja un grupas atļaujas. Lai to izdarītu, izmantojiet karogu -b.

setfacl -b ~/acl-test/

Tie ir visizplatītākie setfacl lietojumi. Ja vēlaties ienirt dziļāk, nākamā šīs rokasgrāmatas daļa ir pilnīgs komandas tehniskais sadalījums.

Setfacl tehniskais sadalījums

setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] fails...

setfacl --restore=fails.

Atļaujas

Faila īpašniekam un procesiem, kas spēj CAP_FOWNER, tiek piešķirtas tiesības modificēt faila ACL. Tas ir līdzīgs atļaujām, kas nepieciešamas, lai piekļūtu faila režīmam. (Pašreizējās Linux sistēmās root ir vienīgais lietotājs ar CAP_FOWNER iespēju.)

Iespējas

-b, --noņemt-visu

  • Noņemiet visus paplašinātos ACL ierakstus. Īpašnieka, grupas un citu personu ACL pamata ieraksti tiek saglabāti.

-k, --noņemt-noklusējums

  • Noņemiet noklusējuma ACL. Ja noklusējuma ACL nepastāv, brīdinājumi netiek izdoti.

-n, --bez maskas

  • Nepārrēķiniet spēkā esošo tiesību masku. Setfacl noklusējuma darbība ir ACL maskas ieraksta pārrēķināšana, ja vien maskas ieraksts nav skaidri norādīts. Maskas ieraksts ir iestatīts uz visu piederošās grupas atļauju un visu nosaukto lietotāja un grupas ierakstu apvienojumu. (Tie ir tieši tie ieraksti, kurus ietekmē maskas ieraksts).

-- maska

  • Pārrēķiniet spēkā esošo tiesību masku, pat ja ir skaidri norādīts ACL maskas ieraksts. (Skatiet -n variants.)

-d, - noklusējums

  • Visas darbības attiecas uz Noklusējums ACL. Regulāri ACL ieraksti ievades kopā tiek paaugstināti par noklusējuma ACL ierakstiem. Noklusējuma ACL ieraksti ievades kopā tiek atmesti. (Ja tā notiek, tiek izdots brīdinājums).

--restore=fails

  • Atjaunojiet atļaujas dublējumu, kas izveidots ar `getfacl -R' vai līdzīgu. Izmantojot šo mehānismu, tiek atjaunotas visas pilna direktoriju apakškoka atļaujas. Ja ievade satur īpašnieka komentārus vai grupas komentārus un setfacl palaiž sakne, tiek atjaunots arī visu failu īpašnieks un piederošā grupa. Šo opciju nevar sajaukt ar citām opcijām, izņemot `--test'.

--pārbaude

  • Testa režīms. Tā vietā, lai mainītu jebkuru failu ACL, tiek parādīti iegūtie ACL.

-R, --rekursīvs

  • Lietojiet darbības visiem failiem un direktorijiem rekursīvi. Šo opciju nevar sajaukt ar `--restore'.

-L, -loģiski

  • Loģiska pastaiga, sekojiet simboliskām saitēm. Noklusējuma darbība ir sekot simbolisku saišu argumentiem un izlaist simboliskās saites, kas tiek atrastas apakšdirektorijās. Šo opciju nevar sajaukt ar `--restore'.

-P, --fizisks

  • Fiziskā pastaiga, izlaist visu simboliskas saites. Tas izlaiž arī simbolisko saišu argumentus. Šo opciju nevar sajaukt ar `--restore'.

-- versija

  • Izdrukājiet setfacl versiju un izejiet.

-- palīdzēt

  • Drukājiet palīdzību, kurā izskaidrotas komandrindas opcijas.

Komandrindas opcijas beigas. Visi atlikušie parametri tiek interpretēti kā failu nosaukumi, pat ja tie sākas ar domuzīmi.

Ja faila nosaukuma parametrs ir viena domuzīme, setfacl nolasa failu sarakstu no standarta ievades.

ACL ieraksti

Setfacl utilīta atpazīst šādus ACL ievades formātus:

[d [noklusējums]:] [u [lietotājs]:]uid [:ilgviļņi]

  • Nosaukta lietotāja atļaujas. Faila īpašnieka atļaujas, ja uid ir tukšs.

[d[noklusējums]:] g[grupa]:gid [:ilgviļņi]

  • Nosauktas grupas atļaujas. Īpašnieka grupas atļaujas, ja gid ir tukšs.

[d[noklusējums]:] m[jautāt][:] [:ilgviļņi]

  • Efektīva tiesību maska

[d[noklusējums]:] o[cits][:] [:ilgviļņi]

  • Citu personu atļaujas

Atstarpes starp norobežojošām rakstzīmēm un rakstzīmēm bez atdalīšanas tiek ignorētas.

Pārveidošanas un iestatīšanas operācijās tiek izmantoti atbilstoši ACL ieraksti, tostarp atļaujas. (opcijas -m, -M, -- set un --set-fails). Ieraksti bez ilgviļņi lauks tiek izmantots dzēšana ierakstu (opcijas -x un -X).

Priekš uid un gid varat norādīt vārdu vai numuru.

The ilgviļņi lauks ir rakstzīmju kombinācija, kas norāda atļaujas: lasīt (r), rakstiet (w), izpildīt (x), izpildiet tikai tad, ja fails ir direktorijs vai tam jau ir izpildes atļauja kādam lietotājam(X). Alternatīvi, ilgviļņi lauks var būt astoņciparu cipars (0–7).

Automātiski izveidoti ieraksti

Sākotnēji faili un direktoriji satur tikai trīs pamata ACL ierakstus īpašniekam, grupai un citiem. Lai ACL būtu derīgs, ir jāievēro daži noteikumi.

  • Trīs pamata ierakstus nevar noņemt. Katram no šiem pamata ierakstu veidiem ir jābūt tieši vienam ierakstam.
  • Ikreiz, kad ACL satur nosauktus lietotāja ierakstus vai nosauktus grupas objektus, tajā ir jāietver arī efektīva tiesību maska.
  • Ikreiz, kad ACL satur kādus noklusējuma ACL ierakstus, ir jāpastāv arī trim noklusējuma ACL bāzes ierakstiem (noklusējuma īpašnieks, noklusējuma grupa un noklusējuma citi).
  • Ikreiz, kad noklusējuma ACL satur nosauktus lietotāja ierakstus vai nosauktus grupas objektus, tajā ir jāietver arī noklusējuma spēkā esošo tiesību maska.

Lai palīdzētu lietotājam nodrošināt šos noteikumus, setfacl izveido ierakstus no esošajiem ierakstiem ar šādiem nosacījumiem:

  • Ja ACL satur nosauktus lietotāja vai grupas ierakstus un maskas ieraksts nepastāv, tiek izveidots maskas ieraksts, kas satur tādas pašas atļaujas kā grupas ierakstam. Ja vien nav -n Tiek dota opcija, maskas ieraksta atļaujas tiek tālāk pielāgotas, lai iekļautu visu maskas ieraksta ietekmēto atļauju savienību. (Skatiet -n opcijas apraksts).
  • Ja tiek izveidots noklusējuma ACL ieraksts un noklusējuma ACL nav īpašnieka, īpašumtiesību grupas vai citu ierakstu, ACL īpašnieka, piederošās grupas vai citu ieraksta kopija tiek pievienota noklusējuma ACL.
  • Ja noklusējuma ACL satur nosauktus lietotāja ierakstus vai nosauktus grupas ierakstus un maskas ieraksts nepastāv, tiek pievienots maskas ieraksts, kas satur tādas pašas atļaujas kā noklusējuma ACL grupas ierakstam. Ja vien nav -n Tiek dota opcija, maskas ieraksta atļaujas tiek tālāk pielāgotas, lai iekļautu visu maskas ieraksta ietekmēto atļauju savienību. (Skatiet -nopcijas apraksts).

Piemēri

  • Papildu lietotāja lasīšanas piekļuves piešķiršana
  • setfacl -m u: lisa: r failu
  • Rakstīšanas piekļuves atsaukšana no visām grupām un visiem nosauktajiem lietotājiem (izmantojot spēkā esošo tiesību masku)
  • setfacl -m m:: rx fails
  • Nosaukta grupas ieraksta noņemšana no faila ACL
  • setfacl -x g: personāla fails
  • Viena faila ACL kopēšana citā
  • getfacl fails1 | setfacl --set-file=- file2
  • Piekļuves ACL kopēšana noklusējuma ACL
  • getfacl -a dir | setfacl -d -M- rež

Atbilstība Posix 1003.1e 17. standarta projektam

Ja ir definēts vides mainīgais POSIXLY_CORRECT, setfacl noklusējuma darbība mainās šādi: Visas nestandarta opcijas ir atspējotas. Prefikss ``noklusējums:'' ir atspējots. The -x un -X opcijas arī pieņem atļauju laukus (un ignorē tos).