Baimenak Linux-en (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Kaixo guztioi. RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 eta EX300 liburuko artikulu baten itzulpena da hau.

Bultza: Espero dut artikulua hasiberrientzat ez ezik, esperientziadun administratzaileei beren ezagutzak errazten lagunduko diela ere.

Goazen, beraz.

Baimenak Linux-en (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Linux-en fitxategietara sartzeko, baimenak erabiltzen dira. Baimen hauek hiru objekturi esleitzen zaizkie: fitxategi-jabeari, taldearen jabeari eta beste objektu bati (hau da, beste guztiei). Artikulu honetan, baimenak nola aplikatzen ikasiko duzu.

Artikulu hau oinarrizko kontzeptuen ikuspegi orokorrarekin hasten da, eta ondoren baimen berezien eta Sarbide Kontrol Zerrenden (ACL) eztabaidatzen da. Artikulu honen amaieran, umask bidez baimen lehenetsiak ezartzeaz gain, erabiltzaileen atributu hedatuak kudeatzeaz gain.

Fitxategien jabetza kudeatzea

Baimenak eztabaidatu aurretik, fitxategiaren eta direktorioaren jabearen eginkizunaren berri izan beharko zenuke. Fitxategien eta direktorioen jabetza ezinbestekoa da baimenei aurre egiteko. Atal honetan jabea nola ikus dezakezun ikasiko duzu lehenik. Ondoren, fitxategien eta direktorioen taldearen jabea eta erabiltzailea nola aldatu ikasiko duzu.

Fitxategi edo direktorio baten jabea bistaratzea

Linuxen, fitxategi bakoitzak eta direktorio bakoitzak bi jabe ditu: erabiltzaile bat eta talde jabe bat.

Fitxategi edo direktorio bat sortzen denean ezartzen dira jabe hauek. Fitxategia sortzen duen erabiltzailea fitxategi horren jabe bihurtzen da, eta erabiltzaile berari dagokion talde nagusia ere fitxategi horren jabe bihurtzen da. Erabiltzaile gisa fitxategi edo direktorio batera sartzeko baimenik duzun zehazteko, shell-ak jabetza egiaztatzen du.

Hau ordena honetan gertatzen da:

  1. Shell-ek atzitu nahi duzun fitxategiaren jabea zaren ala ez egiaztatzen du. Jabea bazara, baimenak lortuko dituzu eta shell-ak egiaztatzeari uzten dio.
  2. Fitxategiaren jabea ez bazara, shell-ak egiaztatuko du fitxategian baimenak dituen talde bateko kide zaren ala ez ikusteko. Talde honetako kidea bazara, fitxategira sartuko zara taldeak ezarri dituen baimenekin, eta shell-ak egiaztatzeari utziko dio.
  3. Ez bazara ez erabiltzailea ez talde baten jabea, beste erabiltzaile batzuen eskubideak (Besteak) ematen zaizkizu.

Uneko jabearen esleipenak ikusteko, komandoa erabil dezakezu ls -l. Komando honek taldearen erabiltzailea eta jabea erakusten ditu. Jarraian /home direktorioko direktorioen jabearen ezarpenak ikus ditzakezu.

[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

Komandoa erabiliz ls direktorio jakin bateko fitxategien jabea bistaratu dezakezu. Batzuetan erabilgarria izan daiteke erabiltzaile edo talde jakin bat jabe gisa duten sistemako fitxategi guztien zerrenda eskuratzea. Horretarako erabil dezakezu aurkitu. Argudioa aurkitu-erabiltzailea horretarako erabil daiteke. Adibidez, komando honek linda erabiltzaileak dituen fitxategi guztiak zerrendatzen ditu:

find / -user linda

Erabil dezakezu ere aurkitu talde jakin bat jabe gisa duten fitxategiak bilatzeko.

Adibidez, hurrengo komandoak taldeko fitxategi guztiak bilatzen ditu erabiltzaile:

find / -group users

Jabearen aldaketa

Baimen egokiak aplikatzeko, kontuan hartu beharreko lehen gauza jabetza da. Agindu bat dago horretarako chown. Komando honen sintaxia ulertzeko erraza da:

chown ΠΊΡ‚ΠΎ Ρ‡Ρ‚ΠΎ

Adibidez, komando honek /home/account direktorioaren jabea linda erabiltzailea bihurtzen du:

chown linda /home/account

Team chown hainbat aukera ditu, eta horietako bat bereziki erabilgarria da: -R. Zer egiten duen asma dezakezu aukera hau beste komando askotarako ere eskuragarri baitago. Honek jabea modu errekurtsiboan ezartzeko aukera ematen du, eta horrek uneko direktorioaren jabea eta behean dagoen guztia ezartzeko aukera ematen du. Hurrengo komandoak /home direktorioaren eta azpian dagoen guztiaren jabetza aldatzen du linda erabiltzaileari:

Orain jabeak honelakoak dira:

[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

Egin dezagun:

[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#

Orain lisa erabiltzailea kontu direktorioaren jabe bihurtu da:

[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

Aldatu talde baten jabea

Talde baten jabetza aldatzeko bi modu daude. Hau erabiliz egin dezakezu chown, baina badago komando berezi bat izenekoa chgrphorrek egiten du lana. Komandoa erabili nahi baduzu chown, erabili . edo : taldearen izenaren aurrean.

Komando honek /home/account taldearen edozein jabea kontu taldera aldatzen du:

chown .account /home/account

erabil dezakezu chown erabiltzaile eta/edo talde baten jabea hainbat modutara aldatzeko. Hona hemen adibide batzuk:

  • chown lisa myfile1 Lisa erabiltzailea myfile1-ren jabe gisa ezartzen du.
  • chown lisa.sales myfile lisa erabiltzailea myfile fitxategiaren jabe gisa ezartzen du, eta salmenta taldea ere ezartzen du fitxategi beraren jabe gisa.
  • chown lisa:sales myfile aurreko komandoaren berdina.
  • chown .sales myfile salmenta taldea myfile-ren jabe gisa ezartzen du erabiltzailearen jabea aldatu gabe.
  • chown:sales myfile aurreko komandoaren berdina.

Komandoa erabil dezakezu chgrptaldearen jabea aldatzeko. Demagun hurrengo adibidea, non erabil dezakezun chgrp ezarri kontu-direktorioaren jabea salmenta-taldera:

chgrp .sales /home/account

Bezala chown, aukera erabil dezakezu -R с chgrp, baita taldearen jabea modu errekurtsiboan aldatzea ere.

Jabe lehenetsia ulertzea

Baliteke konturatu izana erabiltzaile batek fitxategi bat sortzen duenean jabetza lehenetsia aplikatzen dela.
Fitxategia sortzen duen erabiltzailea fitxategi horren jabe bihurtzen da automatikoki, eta erabiltzailearen talde nagusia automatikoki fitxategi horren jabe bihurtzen da. Hau izan ohi da /etc/passwd fitxategian erabiltzailearen talde nagusi gisa zerrendatzen den taldea. Hala ere, erabiltzailea talde bat baino gehiagoko kidea bada, erabiltzaileak lehen talde eraginkorra alda dezake.

Uneko talde primario eraginkorra erakusteko, erabiltzaileak komandoa erabil dezake taldeak:

[root@server1 ~]# groups lisa
lisa : lisa account sales

Egungo linda erabiltzaileak lehen talde eraginkorra aldatu nahi badu, komandoa erabiliko du berriagrpondoren, lehen talde eraginkor berri gisa ezarri nahi duen taldearen izena. Komandoa erabili ondoren berriagrp lehen taldea aktibo egongo da erabiltzaileak komando bat sartu arte irteteko edo ez amaitu saioa.

Jarraian, erabiltzaileak Linda komando hau nola erabiltzen duen erakusten du, salmentak talde nagusi gisa:

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

Lehen mailako talde eraginkorra aldatu ondoren, erabiltzaileak sortutako fitxategi berri guztiek talde hori izango dute taldearen jabe. Jatorrizko talde nagusiaren ezarpenera itzultzeko, erabili irteteko.

Komandoa erabili ahal izateko berriagrp, erabiltzaileak talde nagusi gisa erabili nahi duen taldeko kidea izan behar du. Horrez gain, talde baten pasahitza erabil daiteke komandoa erabiliz talde baterako gpasswd. Erabiltzaileak komandoa erabiltzen badu berriagrpbaina xede-taldeko kidea ez da, shell-ak taldearen pasahitza eskatzen du. Taldeko pasahitz zuzena sartu ondoren, talde nagusi eraginkor berri bat ezarriko da.

Oinarrizko eskubideen kudeaketa

Linux baimen sistema 1970eko hamarkadan asmatu zen. Urte horietan informatika beharrak mugatuak zirenez, oinarrizko baimen-sistema nahiko mugatua zen. Baimen-sistema honek fitxategi eta direktorioei aplika dakizkiekeen hiru baimen erabiltzen ditu. Atal honetan, baimen hauek nola erabiltzen eta aldatzen ikasiko duzu.

Irakurtzeko, idazteko eta exekutatzeko baimenak ulertzea

Oinarrizko hiru baimenek fitxategiak irakurtzeko, idazteko eta exekutatzeko aukera ematen dute. Baimen hauen eragina desberdina da fitxategi edo direktorioetan aplikatzen denean. Fitxategi baterako, irakurtzeko baimenak fitxategia irakurtzeko irekitzeko eskubidea ematen dizu. Hori dela eta, bere edukia irakur dezakezu, baina horrek esan nahi du zure ordenagailuak fitxategia ireki dezakeela berarekin zerbait egiteko.

Liburutegi baterako sarbidea behar duen programa-fitxategi batek, adibidez, liburutegi horretarako irakurtzeko sarbidea izan behar du. Honen ondorioz, irakurtzeko baimena fitxategiekin lan egiteko behar duzun baimen oinarrizkoena da.

Direktorio bati aplikatzen zaionean, irakurketak direktorioa horren edukia bistaratzeko aukera ematen du. Kontuan izan behar duzu baimen honek ez dizula direktorioko fitxategiak irakurtzen uzten. Linux baimen-sistemak ez du herentzia ezagutzen, eta fitxategi bat irakurtzeko modu bakarra fitxategi horretan irakurtzeko baimenak erabiltzea da.

Ziurrenik asma dezakezun bezala, idazteko baimenak, fitxategi bati aplikatuz gero, fitxategian idazteko aukera ematen du. Beste era batera esanda, dauden fitxategien edukia aldatzeko aukera ematen du. Hala ere, ez du onartzen fitxategi berriak sortzeko edo ezabatzeko edo fitxategien baimenak aldatzeko. Horretarako, idazteko baimena eman behar diozu fitxategia sortu nahi duzun direktorioari. Direktorioetan, baimen honek azpidirektorio berriak sortu eta ezabatzeko aukera ematen du.

Exekutatu baimena fitxategia exekutatzeko behar duzuna da. Ez da inoiz instalatuko lehenespenez, eta horrek birusekiko ia erabat immunea bihurtzen du Linux. Direktorioan idazteko baimena duen norbaitek bakarrik aplika dezake exekutatzeko baimena.

Honako hauek laburbiltzen dute oinarrizko baimenen erabilera:

Baimenak Linux-en (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

chmod erabiliz

Komandoa baimenak kudeatzeko erabiltzen da. chmod... Erabiliz chmod erabiltzailearentzat (erabiltzailea), taldeentzat (taldea) eta besteentzat (bestelako) baimenak ezar ditzakezu. Komando hau bi modutan erabil dezakezu: modu erlatiboa eta modu absolutua. Modu absolutuan, hiru digitu erabiltzen dira oinarrizko baimenak ezartzeko.

Baimenak Linux-en (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Baimenak ezartzerakoan, kalkulatu behar duzun balioa. Irakurri/idatzi/exekutatu erabiltzailearentzat, irakurri/exekutatu taldearentzat eta irakurri/exekutatu besteentzat /somefile-n ezarri nahi baduzu, hurrengo komandoa erabiliko duzu chmod:

chmod 755 /somefile

Erabiltzen duzunean chmod horrela, uneko baimen guztiak zuk ezarritako baimenekin ordezkatzen dira.

Oraingo baimenekiko baimenak aldatu nahi badituzu, erabil dezakezu chmod modu erlatiboan. Erabiliz chmod Modu erlatiboan hiru adierazlerekin lan egiten duzu zer egin nahi duzun adierazteko:

  1. Lehenik eta behin, zehazten duzu norentzat aldatu nahi dituzun baimenak. Horretarako, erabiltzaileen artean aukeratu dezakezu (u), taldea (g) eta besteak (o).
  2. Ondoren, adierazpen bat erabiltzen duzu uneko modutik baimenak gehitzeko edo kentzeko, edo erabat ezartzeko.
  3. Azkenean erabiltzen duzu r, w ΠΈ xezarri nahi dituzun baimenak zehazteko.

Baimenak modu erlatiboan aldatzean, "nora" zatia salta dezakezu objektu guztien baimena gehitzeko edo kentzeko. Adibidez, komando honek exekutatzeko baimena gehitzen du erabiltzaile guztientzat:

chmod +x somefile

Modu erlatiboan lan egiten duzunean, komando konplexuagoak ere erabil ditzakezu. Adibidez, komando honek idazteko baimena gehitzen dio talde bati eta irakurtzeko baimena kentzen die besteei:

chmod g+w,o-r somefile

Noiz erabiliz chmod -R o+rx /data exekutatzeko baimena ezartzen duzu direktorio guztietarako eta baita /data direktorioko fitxategietarako ere. Direktorioetarako soilik exekutatzeko baimena ezartzeko, erabili chmod -R o+ rX /datuak.

X maiuskulak bermatzen du fitxategiek ez dutela exekutatzeko baimenik lortzen fitxategiak objektu batzuentzat exekutatzeko baimena ezarri ezean. Honek X exekutatzeko baimenei aurre egiteko modu adimentsuagoa bihurtzen du; honek baimen hori ezartzea saihestuko du beharrezkoa ez den fitxategietan.

Eskubide hedatuak

Irakurri berri dituzun oinarrizko baimenez gain, Linuxek baimen aurreratu multzo bat ere badu. Hauek ez dira lehenespenez ezartzen dituzun baimenak, baina batzuetan gehigarri erabilgarria ematen dute. Atal honetan, zer diren eta nola konfiguratu ikasiko duzu.

SUID, GUID eta Sticky Bit Hedatutako Baimenak ulertzea

Hiru baimen aurreratu daude. Horietako lehenengoa erabiltzaile-identifikatzailea (SUID) ezartzeko baimena da. Kasu berezi batzuetan, baimen hau fitxategi exekutagarriei aplika diezaiekezu. Lehenespenez, exekutagarri bat exekutatzen duen erabiltzaileak fitxategi hori exekutatzen du bere baimenekin.

Erabiltzaile arruntentzat, horrek normalean esan nahi du programaren erabilera mugatua dela. Hala ere, kasu batzuetan, erabiltzaileak baimen bereziak behar ditu, zeregin zehatz bat egiteko soilik.

Demagun, adibidez, erabiltzaile batek pasahitza aldatu behar duen egoera. Horretarako, erabiltzaileak bere pasahitz berria idatzi behar du /etc/shadow fitxategian. Hala ere, fitxategi hau ezin dute erroot ez diren erabiltzaileek idatzi:

root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow

SUID baimenak arazo honi irtenbidea ematen dio. /usr/bin/passwd utilitateak baimen hau erabiltzen du lehenespenez. Horrek esan nahi du pasahitza aldatzean erabiltzailea root bihurtzen dela aldi baterako, eta horri esker /etc/shadow fitxategian idazteko aukera ematen du. SUID baimena ikus dezakezu ls -l gisa s normalean ikustea espero zenukeen posizioan x baimen pertsonalizatuetarako:

[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd

SUID baimena baliagarria izan daiteke (eta kasu batzuetan hala da), baina, aldi berean, arriskutsua izan daiteke. Ondo aplikatzen ez bada, ustekabean root baimenak eman ditzakezu. Hori dela eta, arreta handiz erabiltzea gomendatzen dut.

Administratzaile gehienek ez dute inoiz erabili beharko; sistema eragileak lehenespenez ezarri behar duen fitxategi batzuetan bakarrik ikusiko duzu.

Bigarren baimen berezia talde-identifikatzailea (SGID) da. Baimen honek bi ondorio ditu. Fitxategi exekutagarri bati aplikatzen zaionean, fitxategia exekutatzen duen erabiltzaileari fitxategiaren taldearen jabearen baimenak ematen dizkio. Beraz, SGIDek SUIDen gauza bera egin dezake. Hala ere, SGID ia ez da horretarako erabiltzen.

SUID baimenarekin gertatzen den bezala, SGID sistemako fitxategi batzuei aplikatzen zaie ezarpen lehenetsi gisa.

Direktorio bati aplikatzen zaionean, SGID erabilgarria izan daiteke, direktorio horretan sortutako fitxategien eta azpidirektorioen talde-jabe lehenetsia ezartzeko erabil dezakezulako. Lehenespenez, erabiltzaile batek fitxategi bat sortzen duenean, bere talde nagusi eraginkorra fitxategi horren jabe gisa ezartzen da.

Hau ez da beti oso erabilgarria, batez ere Red Hat/CentOS erabiltzaileek euren talde nagusia erabiltzailearen izen bereko talde batean ezarrita dutelako, eta erabiltzailea kide bakarra den. Horrela, lehenespenez, erabiltzaileak sortzen dituen fitxategiak masiboki partekatuko dira.

Imajinatu egoera bat non erabiltzaileak linda eta lori kontabilitatean lan egiten duten eta talde bateko kideak diren kontu. Lehenespenez, erabiltzaile hauek talde pribatu bateko kideak dira, zeinaren kide bakarrak diren. Hala ere, bi erabiltzaileak kontu-taldeko kideak dira, baina baita bigarren mailako talde-parametro gisa ere.

Egoera lehenetsia da erabiltzaile horietako edozein fitxategi bat sortzen denean, talde nagusia jabe bihurtzen dela. Horregatik, lehenespenez, linda ezin da lorik sortutako fitxategietara sartu, eta alderantziz. Hala ere, partekatutako talde direktorio bat sortzen baduzu (esan /groups/account) eta ziurtatzen baduzu SGID baimena direktorio horri aplikatzen zaiola eta taldeko kontua direktorio horren talde-jabe gisa ezarrita dagoela, direktorio horretan sortutako fitxategi guztiak eta bere azpidirektorioen , taldeko kontua talde-jabe gisa ere lortu lehenespenez.

Horregatik, SGID baimena oso baimen erabilgarria da talde publikoen direktorioetan ezartzeko.

Irteeran agertzen da SGID baimena ls -l gisa s Talde bat exekutatzeko baimena aurkituko zenukeen posizioan:

[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account

Baimen berezien hirugarrena bit itsaskorra da. Baimen hau baliagarria da fitxategiak ustekabeko ezabatzetik babesteko, non erabiltzaile askok direktorio bererako idazteko sarbidea duten ingurune batean. Bit itsatsi bat erabiltzen bada, erabiltzaileak fitxategi bat ezabatu ahal izango du fitxategia duen fitxategiaren edo direktorioaren jabea bada. Horregatik, /tmp direktoriorako baimen lehenetsi gisa erabiltzen da eta talde publikoetarako direktorioetarako ere erabilgarria izan daiteke.

Bit itsatsirik gabe, erabiltzaileak direktorio batean fitxategiak sor ditzake, direktorio horretako fitxategiak ere ezaba ditzake. Talde publikoko ingurune batean, hau gogaikarria izan daiteke. Imajinatu erabiltzaileak linda eta lori, biak /data/account direktorioan idazteko baimenak dituztenak eta baimen horiek eskuratzen dituzten kontu taldeko kide izanda. Hori dela eta, lindak lori-k sortutako fitxategiak ezabatu ditzake eta alderantziz.

Bit itsaskorra aplikatzen duzunean, erabiltzaileak fitxategiak ezaba ditzake baldintza hauetako bat egia bada:

  • Erabiltzailea fitxategiaren jabea da;
  • Erabiltzailea fitxategia dagoen direktorioaren jabea da.

Noiz erabiliz ls -l, bit itsaskorra bezala ikus dezakezu t besteentzako exekuzio baimena normalean ikusiko zenukeen posizioan:

[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/

Hedatutako eskubideak aplikatzea

SUID, SGID eta sticky bit aplikatzeko ere erabil dezakezu chmod. SUID-ek 4-ko zenbaki-balioa du, SGID-ek 2-ko zenbakizko balioa eta bit itsaskorra 1eko zenbakizko balioa.

Baimen hauek aplikatu nahi badituzu, lau digituko argumentu bat gehitu behar diozu chmod, zeinaren lehen zifrak baimen bereziei egiten die erreferentzia. Hurrengo lerroak, adibidez, SGID baimena gehituko du direktoriora eta rwx ezarriko du erabiltzailearentzat eta rx taldearentzat eta besteentzat:

chmod 2755 /somedir

Hau ez da praktikoa lan egin aurretik ezarrita dauden uneko baimenak ikusi behar badituzu chmod modu absolutuan. (Ez baduzu, baimenak gainidazteko arriskua duzu.) Beraz, modu erlatiboan exekutatzeko gomendatzen dizut baimen bereziren bat aplikatu behar baduzu:

  1. SUID erabiltzeko chmod u+s.
  2. SGID erabiltzeko chmod g+s.
  3. Bit itsaskorra erabiltzeko chmod +t, eta ondoren baimenak ezarri nahi dituzun fitxategi edo direktorioaren izena.

Taulak baimen bereziak kudeatzeari buruz jakin behar duzun guztia laburbiltzen du.

Baimenak Linux-en (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Eskubide bereziekin lan egiteko adibide bat

Adibide honetan, baimen bereziak erabiltzen dituzu taldeko kideek partekatutako taldeen direktorioko fitxategiak errazteko. Ezarritako talde IDari eta bit itsaskorrari ID bit esleitzen diozu, eta ikusten duzu behin ezarrita, eginbideak gehitzen direla taldeko kideek elkarrekin lan egiteko errazagoa izan dadin.

  1. Ireki terminal bat non linda erabiltzailea zaren. Komandoarekin erabiltzaile bat sor dezakezu erabiltzailea gehitu linda, gehitu pasahitza pasau linda.
  2. Sortu /data direktorioa erroan eta /data/sales azpidirektorioa komandoarekin mkdir -p /data/sales. Osatu cd /datuak/salmentaksalmenta direktoriora joateko. Osatu ukitu linda1 ΠΈ ukitu linda2lindaren jabetzako bi fitxategi huts sortzeko.
  3. Exekutatu su-lisa egungo erabiltzailea lisa erabiltzailera aldatzeko, hau ere salmenta taldeko kidea den.
  4. Exekutatu cd /datuak/salmentak eta direktorio horretatik exekutatu ls -l. Linda erabiltzaileak sortu dituen eta linda taldekoak diren bi fitxategi ikusiko dituzu. Osatu rm -f linda*. Honek bi fitxategiak ezabatuko ditu.
  5. Exekutatu ukitu lisa1 ΠΈ ukitu lisa2lisa erabiltzailearen jabetzako bi fitxategi sortzeko.
  6. Exekutatu su- zure pribilegioak rootera igotzeko.
  7. Exekutatu chmod g+s,o+t /data/salestalde-identifikatzailea (GUID) bit eta baita bit itsaskorra ere partekatutako taldeen direktorioan ezartzeko.
  8. Exekutatu su-linda. Gero egin ukitu linda3 ΠΈ ukitu linda4. Orain ikusi beharko zenuke sortu dituzun bi fitxategiak salmenta-taldearenak direla, hau da, /data/sales direktorioaren taldearen jabea.
  9. Exekutatu rm -rf lisa*. Bit itsatsiak fitxategi hauek linda erabiltzailearen izenean ezabatzea eragozten du, ez baita fitxategi horien jabea. Kontuan izan linda erabiltzailea /data/sales direktorioaren jabea bada, fitxategi hauek hala ere ezaba ditzakeela!

ACL kudeaketa (setfacl, getfacl) Linux-en

Nahiz eta goian aipaturiko baimen hedatuek funtzionalitate erabilgarria gehitzen dioten Linux-ek baimenak kudeatzeko moduari, ez dizu baimenik ematen fitxategi bereko erabiltzaile edo talde bati baino gehiagori.

Sarbide-kontroleko zerrendek funtzio hau eskaintzen dute. Horrez gain, administratzaileei baimen lehenetsiak modu konplexuan ezartzeko aukera ematen diete, non ezarritako baimenak direktorio batetik bestera alda daitezke.

ACLak ulertzea

ACL azpisistemak zure zerbitzariari funtzionalitate handiak gehitzen dizkion arren, desabantaila bat du: utilitate guztiek ez dute onartzen. Hori dela eta, baliteke zure ACL ezarpenak galtzea fitxategiak kopiatzen edo mugitzen dituzunean, eta zure babeskopiko softwareak zure ACL ezarpenen babeskopia huts egitea.

Tar utilitateak ez ditu ACLak onartzen. Babeskopia bat sortzen duzunean ACL ezarpenak galtzen ez direla ziurtatzeko, erabili star tarren ordez. star tarren aukera berdinekin funtzionatzen du; ACL ezarpenetarako laguntza gehitzen du.

ACLen babeskopia ere egin dezakezu lortufacl, setfacl komandoa erabiliz leheneratu daitekeena. Babeskopia bat sortzeko, erabili getfacl -R /direktorioa > fitxategia.acls. Babeskopia fitxategi batetik ezarpenak berrezartzeko, erabili setfacl --restore=fitxategia.acl.

Tresna batzuen laguntza eza ez litzateke arazorik izan behar. ACLak direktorioei aplikatzen zaizkie sarritan egiturazko neurri gisa, fitxategi indibidualetan baino.
Hori dela eta, ez dira asko izango, gutxi batzuk baizik, fitxategi sistemako leku adimendunetan aplikatuta. Hori dela eta, lan egin dituzun jatorrizko ACLak leheneratzea nahiko erraza da, nahiz eta babeskopiko softwareak onartzen ez dituen.

ACLetarako fitxategi-sistema prestatzea

ACLekin lanean hasi aurretik, baliteke zure fitxategi-sistema ACL-ak onar ditzan prestatu behar izatea. Fitxategi-sistemaren metadatuak hedatu behar direnez, ez dago beti ACL-entzako laguntza lehenetsirik fitxategi-sisteman. Fitxategi-sistema baterako ACLak konfiguratzean "eragiketa ez da onartzen" mezua jasotzen baduzu, baliteke zure fitxategi-sistemak ACLak ez onartzea.

Hau konpontzeko aukera gehitu behar duzu akl muntaia /etc/fstab-en, fitxategi-sistema lehenespenez ACL laguntzarekin muntatu dadin.

ACL ezarpenak aldatzea eta ikustea setfacl eta getfacl-ekin

ACL bat ezartzeko komandoa behar duzu setfacl. Uneko ACL ezarpenak ikusteko, behar duzu lortufacl. Taldea ls -l ez du lehendik dagoen ACLrik erakusten; baimenen zerrendaren ondoren + bat besterik ez du erakusten, eta horrek adierazten du ACLak fitxategiari ere aplikatzen zaizkiola.

ACLak konfiguratu aurretik, beti da komeni da uneko ACL ezarpenak erakustea lortufacl. Beheko adibidean, uneko baimenak ikus ditzakezu, honekin erakusten den moduan ls -l, eta baita erakusten den bezala lortufacl. Nahikoa ondo begiratuz gero, erakutsitako informazioa berdin-berdina dela ikusiko duzu.

[root@server1 /]# ls -ld /dir
drwxr-xr-x. 2 root root 6 Feb 6 11:28 /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

Agindua exekutatzearen ondorioz lortufacl behean ikus dezakezu hiru objektu ezberdinetarako baimenak erakusten direla: erabiltzailea, taldea eta beste batzuk. Orain gehi diezaiogun ACL bat salmenta-taldeari irakurtzeko eta exekutatzeko baimenak emateko. horretarako agindua setfacl -mg:sales:rx /dir. Talde honetan -m uneko ACL ezarpenak aldatu behar direla adierazten du. Horren ostean g:salmentak:rx komandoari irakurketa-exekutatu ACL ezartzeko esaten dio (rx) taldearentzat (g) salmentak. Jarraian komandoa nolakoa den ikus dezakezu, baita getfacl komandoaren irteera ere, uneko ACL ezarpenak aldatu ondoren.

[root@server1 /]# setfacl -m g:sales:rx /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
group:sales:r-x
mask::r-x
other::r-x

Orain talde ACL bat nola konfiguratu ulertzen duzunez, erraza da ACLak ulertzea erabiltzaileentzat eta beste erabiltzaileentzat. Adibidez, komandoa setfacl -mu:linda:rwx /data baimenak ematen dizkio /data direktorioko linda erabiltzaileari jabe egin gabe edo egungo jabearen esleipena aldatu gabe.

Team setfacl ezaugarri eta aukera asko ditu. Aukera bat bereziki garrantzitsua da, parametroa -R. Erabiltzen bada, aukerak ACL ezartzen du une honetan ACL ezarri duzun direktorioan dauden fitxategi eta azpidirektorio guztietarako. Gomendagarria da aukera hau beti erabiltzea lehendik dauden direktorioetarako ACLak aldatzean.

ACL lehenetsiekin lan egitea

ACLak erabiltzearen abantailetako bat direktorioa bateko hainbat erabiltzaileri edo talderi baimenak eman diezazkiokeela da. Beste abantaila bat da herentzia gaitu dezakezula ACL lehenetsiekin lan eginez.

ACL lehenetsia ezarriz, direktorioan sortutako elementu berri guztientzat ezarriko diren baimenak zehazten dituzu. Kontuan izan ACL lehenetsiak ez dituela aldatzen lehendik dauden fitxategi eta azpidirektorioen baimenak. Horiek aldatzeko, ACL normal bat ere gehitu behar duzu!

Hau jakitea garrantzitsua da. ACL bat erabili nahi baduzu hainbat erabiltzaile edo talde direktorio berean sartzeko konfiguratzeko, ACL bi aldiz ezarri behar duzu. Lehenengo erabilera setfacl -R -muneko fitxategien ACL aldatzeko. Ondoren, erabili setfacl-md:sortuko diren elementu berri guztiak zaintzeko.

ACL lehenetsia ezartzeko, aukera gehitu besterik ez duzu behar d aukeraren ondoren -m (ordenak garrantzia du!). Beraz, erabili setfacl -md:g:sales:rx /dataTaldeko salmentak /data direktorioan sortu dena irakurri eta exekutatu nahi baduzu.

ACL lehenetsiak erabiltzean, besteentzat ACLak ezartzea ere erabilgarria izan daiteke. Honek normalean ez du zentzu handirik, besteek erabiltzen dituzten baimenak ere alda ditzakezulako chmod. Hala ere, zer egin ezin duzun chmod, inoiz sortzen den fitxategi berri bakoitzeko beste erabiltzaileei eman behar zaizkien eskubideak zehaztea da. Besteek /data-n sortutako edozertarako baimenik lortzea eragotzi nahi baduzu, adibidez, erabili setfacl -md:o::- /data.

ACLak eta baimen normalak ez dira beti ondo integratzen. Arazoak sor daitezke direktorio bati ACL lehenetsia aplikatzen badiozu, gero elementuak direktorio horretara gehitzen badira eta, ondoren, baimen arruntak aldatzen saiatzen badira. Ohiko baimenei aplikatzen zaizkien aldaketak ez dira ondo islatuko ACLren ikuspegi orokorrean. Arazoak saihesteko, ezarri baimen normalak lehenik, eta ondoren ezarri ACL lehenetsiak (eta saiatu berriro ez aldatzen).

ACLak erabiliz eskubideen kudeaketa altxatuaren adibidea

Adibide honetan, lehenago sortu dituzun /data/account eta /data/sales direktorioekin jarraituko duzu. Aurreko adibideetan, salmenta-taldeak /data/sales-en eta kontu-taldeak /data/account-en baimenak dituela ziurtatu zenuen.

Lehenik eta behin, ziurtatu kontu-taldeak irakurtzeko baimenak dituela /data/sales direktorioan eta salmenta-taldeak irakurtzeko baimenak dituela /data/account direktorioa.

Ondoren, ACL lehenetsiak ezarri dituzu fitxategi berri guztiek elementu berri guztientzat baimen egokiak dituztela ziurtatzeko.

  1. Ireki terminal bat.
  2. Exekutatu setfacl -mg:kontua:rx /data/sales ΠΈ setfacl -mg:sales:rx /data/account.
  3. Exekutatu lortufaclbaimenak nahi duzun moduan ezarrita zeudela ziurtatzeko.
  4. Exekutatu setfacl -md:g:kontua:rwx,g:sales:rx /data/salessalmenten direktoriorako ACL lehenetsia ezartzeko.
  5. Gehitu ACL lehenetsi bat /data/account direktorioa erabiliz setfacl -md:g:salmentak:rwx,g:kontua:rx /data/kontua.
  6. Egiaztatu ACL ezarpenak indarrean daudela fitxategi berri bat gehituz /data/sales-en. Osatu ukitu /data/sales/newfile eta exekutatu getfacl /data/sales/newfile egungo baimenak egiaztatzeko.

Baimen lehenetsiak ezartzea umask-ekin

Goian, ACL lehenetsiekin lan egiten ikasi duzu. ACL bat erabiltzen ari ez bazara, lortuko dituzun baimen lehenetsiak zehazten dituen shell aukera dago: maskara (alderantzizko maskara). Atal honetan, lehenetsitako baimenak nola aldatu ikasiko duzu maskara.

Baliteke fitxategi berri bat sortzen duzunean baimen lehenetsi batzuk ezartzen direla konturatu izana. Baimen hauek ezarpenaren arabera zehazten dira maskara. Shell ezarpen hau saioa hasten direnean erabiltzaile guztiei aplikatzen zaie. Parametroan maskara zenbakizko balio bat erabiltzen da, fitxategirako automatikoki ezar daitezkeen gehienezko baimenetatik kentzen dena; fitxategietarako gehienezko ezarpena 666 da eta direktorioetarako 777.

Hala ere, arau honi salbuespen batzuk aplikatzen zaizkio. Ezarpenen ikuspegi osoa aurki dezakezu maskara beheko taulan.

urtean erabilitako zenbakietatik maskara, komandoaren zenbakizko argumentuen kasuan bezala chmod, lehenengo zifrak erabiltzailearen baimenei egiten die erreferentzia, bigarrena taldearen baimenei dagokie eta azkenak besteentzako ezarritako baimen lehenetsiei. Esanahia maskara 022 lehenetsiak 644 ematen du fitxategi berri guztientzat eta 755 zure zerbitzarian sortutako direktorio berri guztientzat.

Zenbakizko balio guztien ikuspegi osoa maskara eta haien emaitzak beheko taulan.

Baimenak Linux-en (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Umask ezarpenak nola funtzionatzen duen ikusteko modu erraz bat honakoa da: hasi fitxategiaren baimen lehenetsiak 666an ezarrita eta kendu umask baimen eraginkorrak lortzeko. Egin gauza bera direktorioarekin eta bere 777 baimen lehenetsiekin.

Umask ezarpena aldatzeko bi modu daude: erabiltzaile guztientzat eta banakako erabiltzaileentzat. Erabiltzaile guztientzat umask ezarri nahi baduzu, ziurtatu behar duzu umask ezarpena kontuan hartzen dela shell inguruneko fitxategiak abiaraztean, /etc/profile-n zehazten den moduan. Planteamendu zuzena da /etc/profile.d direktorioan umask.sh izeneko shell script bat sortzea eta shell script horretan erabili nahi duzun umask zehaztea. Fitxategi honetan umask aldatzen bada, zerbitzarian saioa hasi ondoren erabiltzaile guztiei aplikatzen zaie.

/etc/profile eta erlazionatutako fitxategien bidez umask ezartzeko alternatiba bat, non saioa hasten duten erabiltzaile guztiei aplikatzen zaien, umask ezarpenak aldatzea da .profile izeneko fitxategi batean, erabiltzaile bakoitzaren hasierako direktorioan sortzen den.

Fitxategi honetan aplikatutako ezarpenak erabiltzaile indibidualei soilik aplikatzen zaizkie; beraz, metodo ona da xehetasun gehiago behar badituzu. Pertsonalki gustatzen zait eginbide hau root erabiltzailearentzat umask lehenetsia 027ra aldatzea erabiltzaile arruntak 022 umask lehenetsiarekin exekutatzen ari diren bitartean.

Erabiltzaile-atributu hedatuekin lan egitea

Hau da Linux baimenei buruzko azken atala.

Baimenekin lan egitean, beti dago erlazio bat erabiltzaile edo talde-objektu baten eta erabiltzaile edo talde-objektuek fitxategi edo direktorio batean dituzten baimenen artean. Linux zerbitzari batean fitxategiak babesteko metodo alternatibo bat atributuekin lan egitea da.
Atributuek beren lana egiten dute fitxategira sartzen den erabiltzailea edozein dela ere.

ACLekin gertatzen den bezala, baliteke fitxategi-atributuek aukera sartu behar izatea muntatu.

Hau aukera bat da erabiltzailea_xattr. Erabiltzaile-atributu hedatuekin lan egiten duzunean "eragiketa ez da onartzen" mezua jasotzen baduzu, ziurtatu parametroa ezarri duzula muntatu /etc/fstab-en.

Atributu asko dokumentatuta daude. Atributu batzuk eskuragarri daude baina oraindik ez dira inplementatu. Ez erabili; ez dizute ezer ekarriko.

Jarraian aplika ditzakezun atributu erabilgarrienak daude:

A Atributu honek fitxategiaren fitxategirako sarbide-denbora aldatzen ez dela ziurtatzen du.
Normalean, fitxategi bat irekitzen den bakoitzean, fitxategiaren sarbide-denbora fitxategiaren metadatuetan erregistratu behar da. Horrek negatiboki eragiten du errendimenduan; beraz, aldizka atzitzen diren fitxategietarako, atributua A eginbide hau desgaitzeko erabil daiteke.

a Atributu honek fitxategi bat gehitzeko baina ez kentzeko aukera ematen du.

c Bolumen-mailako konpresioa onartzen duen fitxategi-sistema erabiltzen ari bazara, fitxategi-atributu honek konpresio-mekanismoa gaitzen den lehen aldian fitxategia konprimitzen dela ziurtatzen du.

D Atributu honek fitxategien aldaketak diskoan berehala idazten direla ziurtatzen du, lehen cachean gorde beharrean. Datu-baseko fitxategi garrantzitsuen atributu erabilgarria da fitxategien cachearen eta disko gogorren artean galduko ez direla ziurtatzeko.

d Atributu honek ziurtatzen du fitxategia ez dela gordeko iraulketa-utilitatea erabiltzen den babeskopietan.

I Atributu honek gaituta dagoen direktoriorako indexatzea gaitzen du. Honek fitxategietarako sarbide azkarragoa eskaintzen du B-zuhaitz datu-basea erabiltzen ez duten Ext3 bezalako fitxategi-sistema primitiboentzat, fitxategiak azkar sartzeko.

i Atributu honek fitxategia aldaezina bihurtzen du. Beraz, ezin da aldaketarik egin fitxategian, eta hori erabilgarria da babes gehigarria behar duten fitxategietarako.

j Atributu honek ziurtatzen du, ext3 fitxategi-sistema batean, fitxategia lehenik aldizkarian idazten dela eta gero disko gogorrean dauden datu-blokeetan.

s Gainidatzi fitxategia ezabatu ondoren fitxategia 0etan gordetako blokeak. Horrek bermatzen du fitxategi bat ezin dela leheneratu ezabatu ondoren.

u Atributu honek ezabatzeari buruzko informazioa gordetzen du. Honek informazio honekin lan egiten duen utilitate bat garatzeko aukera ematen du ezabatutako fitxategiak erreskatatzeko.

Atributuak aplikatu nahi badituzu, komandoa erabil dezakezu txatr. Adibidez, erabili chattr +s somefilezenbait fitxategiri atributuak aplikatzeko. Atributu bat kendu behar duzu? Ondoren, erabili chattr -s somefileeta kendu egingo da. Une honetan aplikatzen diren atributu guztien ikuspegi orokorra lortzeko, erabili komandoa lsattr.

Laburpena

Artikulu honetan, baimenekin lan egiten ikasi duzu. Oinarrizko hiru baimenei, baimen aurreratuei eta ACL-ak fitxategi-sistema batean nola aplikatu irakurri dituzu. Baimen lehenetsiak aplikatzeko umask aukera erabiltzen ere ikasi duzu. Artikulu honen amaieran, erabiltzaileak hedatutako atributuak nola erabiltzen ikasi zenuen fitxategi-sistemaren segurtasun-geruza gehigarri bat aplikatzeko.

Itzulpen hau gustatu bazaizu, mesedez idatzi horri buruz iruzkinetan. Itzulpen erabilgarriak egiteko motibazio gehiago egongo da.

Artikuluan idatzitako akats eta gramatika akats batzuk zuzendu ditu. Paragrafo handi batzuk txikiagoetara murriztu ditu irakurgarritasun hobea izateko.

"Directoriorako administrazio-eskubideak dituen norbaitek bakarrik eska dezake exekutatzeko baimena"ren ordez. "Direktorioan idazteko baimena duen norbaitek bakarrik aplika dezake exekutatzeko baimena.", eta hori zuzenagoa litzateke.

Eskerrik asko iruzkinengatik berez.

Ordezkatua:
Erabiltzailearen jabea ez bazara, shell-ak egiaztatuko du talde bateko kide zaren ala ez, fitxategiaren talde gisa ere ezagutzen dena.

Gainean:
Fitxategiaren jabea ez bazara, shell-ak egiaztatuko du fitxategian baimenak dituen talde bateko kide zaren ala ez ikusteko. Talde honetako kidea bazara, fitxategira sartuko zara taldeak ezarri dituen baimenekin, eta shell-ak egiaztatzeari utziko dio.

Eskerrik asko zure iruzkinagatik CryptoPirate

Iturria: www.habr.com

Gehitu iruzkin berria