Otorizasyon nan Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Bonjou tout moun. Sa a se yon tradiksyon yon atik ki soti nan liv RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 ak EX300.

Pouse: Mwen espere atik la pral itil pa sèlman pou débutan, men li pral ede tou administratè ki gen plis eksperyans rasyonalize konesans yo.

Se konsa, kite a ale.

Otorizasyon nan Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Pou jwenn aksè nan dosye nan Linux, otorizasyon yo itilize. Pèmisyon sa yo asiyen nan twa objè: pwopriyetè dosye a, pwopriyetè gwoup la, ak yon lòt objè (ki vle di tout lòt moun). Nan atik sa a, ou pral aprann kijan pou aplike otorizasyon.

Atik sa a kòmanse ak yon apèsi sou konsèp debaz yo, ki te swiv pa yon diskisyon sou pèmisyon espesyal ak Lis kontwòl aksè (ACLs). Nan fen atik sa a, nou kouvri mete otorizasyon default atravè umask, osi byen ke jere atribi itilizatè pwolonje.

Jesyon an komen dosye

Anvan ou diskite sou otorizasyon, ou ta dwe konnen wòl pwopriyetè dosye ak anyè. Pwopriyetè dosye ak repèrtwar enpòtan anpil pou fè fas ak otorizasyon. Nan seksyon sa a, ou pral premye aprann ki jan ou ka wè pwopriyetè a. Lè sa a, ou pral aprann kijan pou chanje pwopriyetè gwoup la ak itilizatè pou dosye ak repèrtwar.

Montre pwopriyetè a nan yon dosye oswa anyè

Nan Linux, chak dosye ak chak anyè gen de pwopriyetè: yon itilizatè ak yon pwopriyetè gwoup.

Pwopriyetè sa yo mete lè yo kreye yon dosye oswa anyè. Itilizatè a ki kreye fichye a vin pwopriyetè fichye a, epi gwoup prensipal ke menm itilizatè a fè pati tou vin pwopriyetè fichye a. Pou detèmine si ou, kòm yon itilizatè, gen pèmisyon pou jwenn aksè nan yon dosye oswa anyè, koki a tcheke pou pwopriyete.

Sa rive nan lòd sa a:

  1. Koki a tcheke pou wè si ou se mèt fichye ou vle jwenn aksè a. Si ou se pwopriyetè a, ou jwenn otorizasyon epi koki a sispann tcheke.
  2. Si ou pa pwopriyetè dosye a, koki a pral tcheke pou wè si ou se yon manm nan yon gwoup ki gen otorizasyon sou dosye a. Si ou se yon manm nan gwoup sa a, ou pral jwenn aksè nan dosye a ak otorizasyon ke gwoup la te mete, epi koki a ap sispann tcheke.
  3. Si ou pa ni yon itilizatè ni pwopriyetè yon gwoup, yo ba w dwa lòt itilizatè (Other).

Pou wè devwa aktyèl pwopriyetè yo, ou ka itilize kòmandman an ls-l. Kòmandman sa a montre itilizatè a ak pwopriyetè gwoup la. Anba a ou ka wè paramèt pwopriyetè yo pou anyè nan /home anyè.

[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

Avèk kòmandman an ls ou ka montre pwopriyetè a nan dosye nan yon anyè bay yo. Pafwa li ka itil pou jwenn yon lis tout fichye sou sistèm nan ki gen yon itilizatè oswa gwoup kòm pwopriyetè a. Pou sa ou ka itilize jwenn. Agiman jwenn-itilizatè ka itilize pou objektif sa a. Pou egzanp, kòmandman sa a bay lis tout dosye ki posede pa itilizatè a linda:

find / -user linda

Ou kapab tou itilize jwenn pou chèche dosye ki gen yon gwoup sèten kòm pwopriyetè yo.

Pa egzanp, kòmandman sa a ap chèche tout dosye ki fè pati gwoup la itilizatè:

find / -group users

Chanjman pwopriyetè

Pou aplike otorizasyon ki apwopriye yo, premye bagay ou dwe konsidere se an komen. Gen yon kòmandman pou sa chown. Sentaks kòmandman sa a fasil pou konprann:

chown кто что

Pou egzanp, lòd sa a chanje pwopriyetè anyè /home/account la nan itilizatè linda la:

chown linda /home/account

Ekip chown gen plizyè opsyon, youn nan ki se patikilyèman itil: -R. Ou ka devine kisa li fè paske opsyon sa a disponib pou anpil lòt kòmandman tou. Sa a pèmèt ou rekursiv mete mèt kay la, ki pèmèt ou mete mèt kay la nan anyè aktyèl la ak tout bagay ki anba a. Kòmandman sa a chanje pwopriyetè /home anyè a ak tout bagay ki anba li bay itilizatè linda la:

Koulye a, mèt pwopriyete yo sanble sa a:

[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

Ann fè:

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

Kounye a lisa itilizatè a te vin pwopriyetè anyè kont la:

[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

Chanje pwopriyetè yon gwoup

Gen de fason pou chanje pwopriyetè yon gwoup. Ou ka fè sa lè l sèvi avèk chown, men gen yon kòmandman espesyal ki rele chgrpki fè travay la. Si ou vle sèvi ak kòmandman an chown, sèvi ak . oswa : devan non gwoup la.

Kòmandman sa a chanje nenpòt pwopriyetè gwoup /home/kont nan gwoup kont la:

chown .account /home/account

ou ka itilize chown chanje pwopriyetè yon itilizatè ak/oswa gwoup nan plizyè fason. Men kèk egzanp:

  • chown lisa myfile1 mete itilizatè a lisa kòm pwopriyetè myfile1.
  • chown lisa.sales myfile mete itilizatè a Lisa kòm pwopriyetè a nan dosye a myfile, epi tou li mete gwoup la lavant kòm pwopriyetè a nan menm dosye a.
  • chown lisa:sales myfile menm jan ak kòmandman anvan an.
  • chown .sales myfile etabli gwoup lavant la kòm pwopriyetè myfile san yo pa chanje pwopriyetè itilizatè a.
  • chown :sales myfile menm jan ak kòmandman anvan an.

Ou ka itilize kòmandman an chgrppou chanje pwopriyetè gwoup la. Konsidere egzanp sa a, kote ou ka itilize chgrp mete pwopriyetè a nan anyè kont nan gwoup la lavant:

chgrp .sales /home/account

Menm jan ak chown, ou ka itilize opsyon an -R с chgrp, osi byen ke recursively chanje mèt kay la nan gwoup la.

Konprann Pwopriyetè Default la

Ou ka remake ke lè yon itilizatè kreye yon fichye, se pwopriyetè default la aplike.
Itilizatè a ki kreye fichye a otomatikman vin pwopriyetè fichye a, epi gwoup prensipal itilizatè a vin otomatikman pwopriyetè fichye a. Sa a se nòmalman gwoup la ki nan lis nan dosye a /etc/passwd kòm gwoup prensipal itilizatè a. Sepandan, si itilizatè a se yon manm nan plis pase yon gwoup, itilizatè a ka chanje gwoup prensipal la efikas.

Pou montre aktyèl gwoup efikas prensipal la, itilizatè a ka itilize kòmandman an gwoup:

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

Si itilizatè linda aktyèl la vle chanje gwoup prensipal la efikas, li pral sèvi ak lòd la newgrpswiv non gwoup li vle mete kòm nouvo gwoup prensipal efikas. Apre w fin itilize kòmandman an newgrp gwoup prensipal la pral aktif jiskaske itilizatè a antre nan yon lòd sòti oswa ou pa dekonekte.

Sa ki anba la a montre kouman itilizatè a Linda sèvi ak lòd sa a, ak lavant kòm gwoup prensipal la:

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

Apre w fin chanje gwoup prensipal efikas la, tout nouvo fichye itilizatè a kreye ap genyen gwoup sa a kòm pwopriyetè gwoup la. Pou retounen nan anviwònman gwoup prensipal orijinal la, sèvi ak sòti.

Pou kapab itilize kòmandman an newgrp, itilizatè a dwe yon manm nan gwoup la yo vle itilize kòm gwoup prensipal la. Anplis de sa, yon modpas gwoup ka itilize pou yon gwoup lè l sèvi avèk kòmandman an gpasswd. Si itilizatè a sèvi ak lòd la newgrpmen se pa yon manm nan gwoup la sib, koki a envit pou modpas gwoup la. Apre ou fin antre modpas gwoup kòrèk la, yo pral etabli yon nouvo gwoup prensipal efikas.

Jesyon dwa fondamantal yo

Sistèm pèmisyon Linux te envante nan ane 1970 yo. Depi bezwen enfòmatik yo te limite nan ane sa yo, sistèm pèmisyon debaz la te byen limite. Sistèm pèmisyon sa a itilize twa otorizasyon ki ka aplike nan dosye ak anyè. Nan seksyon sa a, ou pral aprann kijan pou itilize ak chanje otorizasyon sa yo.

Konprann Otorizasyon Lekti, Ekri ak Egzekite

Twa otorizasyon debaz pèmèt ou li, ekri, ak egzekite dosye. Efè otorizasyon sa yo diferan lè yo aplike nan dosye oswa anyè. Pou yon fichye, pèmisyon lekti a ba ou dwa pou w louvri dosye a pou li. Se poutèt sa, ou ka li kontni li yo, men sa vle di òdinatè w lan ka louvri dosye a fè yon bagay ak li.

Yon dosye pwogram ki bezwen aksè nan yon bibliyotèk dwe, pou egzanp, gen aksè lekti nan bibliyotèk sa a. Li swiv ke pèmisyon lekti a se pèmisyon ki pi fondamantal ou bezwen travay ak dosye.

Lè yo aplike nan yon anyè, lekti pèmèt ou montre sa ki nan anyè sa a. Ou ta dwe konnen ke pèmisyon sa a pa pèmèt ou li dosye yo nan anyè a. Sistèm pèmisyon Linux la pa konnen eritaj, e sèl fason pou li yon fichye se sèvi ak otorizasyon lekti sou dosye sa a.

Kòm pwobableman ou ka devine, ekri pèmisyon, si aplike nan yon dosye, pèmèt ekri nan dosye a. Nan lòt mo, li pèmèt ou chanje sa ki nan dosye ki egziste deja. Sepandan, li pa pèmèt ou kreye oswa efase nouvo dosye oswa chanje otorizasyon dosye. Pou fè sa, ou bezwen bay pèmisyon ekri nan anyè kote ou vle kreye dosye a. Nan repèrtwar, pèmisyon sa a pèmèt ou tou kreye ak efase nouvo sous-repertoires.

Egzekite pèmisyon se sa ou bezwen egzekite dosye a. Li p'ap janm enstale pa default, ki fè Linux prèske nèt iminitè kont viris. Se sèlman yon moun ki gen pèmisyon ekri sou anyè a ki ka aplike pèmisyon pou egzekite.

Sa ki annapre yo rezime itilizasyon otorizasyon debaz yo:

Otorizasyon nan Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Sèvi ak chmod

Yo itilize kòmandman an pou jere otorizasyon yo. chmod. Sèvi ak chmod ou ka mete otorizasyon pou itilizatè a (itilizatè), gwoup (gwoup) ak lòt moun (lòt). Ou ka itilize lòd sa a nan de mòd: mòd relatif ak mòd absoli. Nan mòd absoli, twa chif yo itilize pou mete otorizasyon debaz yo.

Otorizasyon nan Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Lè w ap mete otorizasyon, kalkile valè ou bezwen an. Si ou vle mete li / ekri / egzekite pou itilizatè, li / egzekite pou gwoup, ak li / egzekite pou lòt moun nan / somefile Lè sa a, ou sèvi ak lòd sa a chmod:

chmod 755 /somefile

Lè w itilize chmod an fason sa a, tout otorizasyon aktyèl yo ranplase pa otorizasyon ou mete yo.

Si ou vle chanje otorizasyon yo parapò ak pèmisyon aktyèl yo, ou ka itilize chmod nan mòd relatif. Sèvi ak chmod nan mòd relatif ou travay ak twa endikatè pou endike sa ou vle fè:

  1. Premyèman, ou presize pou ki moun ou vle chanje otorizasyon yo. Pou fè sa, ou ka chwazi ant itilizatè (u), gwoup (g) ak lòt moun (o).
  2. Lè sa a, ou sèvi ak yon deklarasyon pou ajoute oswa retire otorizasyon nan mòd aktyèl la, oswa mete yo absoliman.
  3. Nan fen a ou itilize r, w и xpou presize ki otorizasyon ou vle mete.

Lè w chanje otorizasyon nan mòd relatif, ou ka sote pati "a" pou ajoute oswa retire pèmisyon pou tout objè yo. Pou egzanp, lòd sa a ajoute pèmisyon pou tout itilizatè yo:

chmod +x somefile

Lè w ap travay nan mòd relatif, ou ka tou itilize kòmandman pi konplèks. Pou egzanp, kòmandman sa a ajoute pèmisyon ekri nan yon gwoup epi retire pèmisyon lekti pou lòt moun:

chmod g+w,o-r somefile

Lè lè l sèvi avèk la chmod -R o + rx / done ou mete pèmisyon egzekite pou tout anyè ansanm ak dosye ki nan anyè /data. Pou mete pèmisyon egzekite sèlman pou repèrtwar epi pa pou fichye, sèvi ak chmod -R o+ rX / done.

X majiskil la asire ke fichye yo pa jwenn pèmisyon egzekite sof si fichye a te deja mete pèmisyon egzekite pou kèk objè. Sa fè X yon fason pi entelijan pou fè fas ak pèmisyon egzekite; sa a pral evite mete pèmisyon sa a sou dosye kote li pa obligatwa.

Dwa pwolonje

Anplis otorizasyon debaz ou jis li sou, Linux tou gen yon seri otorizasyon avanse. Sa yo se pa otorizasyon ou mete pa default, men pafwa yo bay yon adisyon itil. Nan seksyon sa a, ou pral aprann kisa yo ye ak kijan pou mete yo kanpe.

Konprann SUID, GUID ak otorizasyon pwolonje Sticky Bit

Gen twa otorizasyon avanse. Premye a nan sa yo se pèmisyon pou mete yon idantifyan itilizatè (SUID). Nan kèk ka espesyal, ou ka aplike pèmisyon sa a nan dosye ègzèkutabl. Pa default, yon itilizatè ki kouri yon ègzèkutabl kouri dosye sa a ak pwòp otorizasyon yo.

Pou itilizatè òdinè, sa anjeneral vle di ke itilizasyon pwogram nan limite. Sepandan, nan kèk ka, itilizatè a bezwen otorizasyon espesyal, sèlman pou fè yon travay espesifik.

Konsidere, pou egzanp, yon sitiyasyon kote yon itilizatè bezwen chanje modpas yo. Pou fè sa, itilizatè a dwe ekri nouvo modpas yo nan dosye /etc/shadow. Sepandan, itilizatè ki pa rasin pa ka ekri fichye sa a:

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

Pèmisyon SUID ofri yon solisyon pou pwoblèm sa a. Sèvis piblik /usr/bin/passwd itilize pèmisyon sa a pa defo. Sa vle di ke lè chanje modpas la, itilizatè a vin tanporèman rasin, ki pèmèt li ekri nan /etc/shadow fichye a. Ou ka wè pèmisyon SUID la ls-l kòm s nan yon pozisyon kote ou ta nòmalman espere wè x pou pèmisyon koutim:

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

Pèmisyon SUID a ka parèt itil (e nan kèk ka li se), men an menm tan li potansyèlman danjere. Si ou pa aplike kòrèkteman, ou ka aksidantèlman bay otorizasyon rasin. Se poutèt sa, mwen rekòmande pou itilize li sèlman ak anpil atansyon.

Pifò administratè p'ap janm bezwen sèvi ak li; ou pral sèlman wè li nan kèk dosye kote sistèm operasyon an ta dwe mete li pa default.

Dezyèm pèmisyon espesyal la se gwoup idantifyan (SGID). Pèmisyon sa a gen de efè. Lè yo aplike nan yon dosye ègzèkutabl, li bay itilizatè a ki egzekite dosye a otorizasyon pwopriyetè gwoup dosye a. Kidonk SGID ka fè plis oswa mwens menm bagay ak SUID. Sepandan, SGID pratikman pa itilize pou objektif sa a.

Menm jan ak pèmisyon SUID, SGID aplike nan kèk dosye sistèm kòm yon anviwònman default.

Lè yo aplike nan yon anyè, SGID a ka itil paske ou ka itilize li pou mete pwopriyetè gwoup defo pou fichye ak sous-répertoires ki te kreye nan anyè sa a. Pa default, lè yon itilizatè kreye yon dosye, gwoup prensipal efikas yo mete kòm pwopriyetè gwoup la pou dosye sa a.

Sa a se pa toujou trè itil, sitou paske itilizatè Red Hat/CentOS gen gwoup prensipal yo mete nan yon gwoup ki gen menm non ak itilizatè a, epi ki itilizatè a se sèl manm. Kidonk, pa default, yo pral pataje fichye itilizatè a kreye an gwo.

Imajine yon sitiyasyon kote itilizatè linda ak lori travay nan kontablite epi yo se manm yon gwoup kont. Pa default, itilizatè sa yo se manm yon gwoup prive kote yo se sèl manm. Sepandan, tou de itilizatè yo se manm gwoup kont la, men tou, kòm yon paramèt gwoup segondè.

Sitiyasyon an default se ke lè nenpòt nan itilizatè sa yo kreye yon dosye, gwoup prensipal la vin pwopriyetè a. Se poutèt sa, pa default, linda pa ka jwenn aksè nan dosye ki te kreye pa lori, ak vis vèrsa. Sepandan, si ou kreye yon anyè gwoup pataje (di /groups/account) epi asire w ke pèmisyon SGID aplike nan anyè sa a epi si kont gwoup la mete kòm pwopriyetè gwoup la pou anyè sa a, tout fichye ki te kreye nan anyè sa a ak tout nan subdirectory li yo, tou jwenn kont gwoup la kòm pwopriyetè gwoup la pa default.

Pou rezon sa a, pèmisyon SGID se yon pèmisyon trè itil pou mete sou anyè gwoup piblik yo.

Pèmisyon SGID yo montre nan pwodiksyon an ls-l kòm s nan pozisyon kote ou ta nòmalman jwenn pèmisyon pou egzekite yon gwoup:

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

Twazyèm nan otorizasyon espesyal yo se ti jan an kolan. Pèmisyon sa a itil pou pwoteje dosye kont efase aksidan nan yon anviwònman kote plizyè itilizatè yo gen aksè ekri nan menm anyè a. Si yo itilize yon ti kras kolan, yon itilizatè ka efase yon fichye sèlman si yo se pwopriyetè itilizatè fichye a oswa anyè ki genyen fichye a. Pou rezon sa a, li itilize kòm pèmisyon default pou anyè /tmp la epi li ka itil pou anyè gwoup piblik tou.

San yo pa ti kras kolan, si itilizatè a ka kreye dosye nan yon anyè, yo kapab tou efase dosye ki soti nan anyè sa a. Nan yon anviwònman gwoup piblik, sa ka anmèdan. Imajine itilizatè yo linda ak lori, ki tou de gen otorizasyon ekri nan /data/anyè kont la epi jwenn otorizasyon sa yo lè yo se manm gwoup kont la. Se poutèt sa, linda ka efase dosye ki te kreye pa lori ak vis vèrsa.

Lè ou aplike ti kras kolan an, itilizatè a ka efase dosye sèlman si youn nan kondisyon sa yo se vre:

  • Itilizatè a se pwopriyetè dosye a;
  • Itilizatè a se pwopriyetè anyè kote dosye a ye.

Lè lè l sèvi avèk la ls-l, ou ka wè ti jan an kolan kòm t nan pozisyon kote ou ta nòmalman wè pèmisyon ekzekisyon pou lòt moun:

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

Aplike dwa pwolonje

Pou aplike SUID, SGID ak sticky bit ou ka itilize tou chmod. SUID gen yon valè nimerik 4, SGID gen yon valè nimerik 2, ak ti kras kolan gen yon valè nimerik 1.

Si ou vle aplike otorizasyon sa yo, ou bezwen ajoute yon agiman kat chif chmod, ki gen premye chif refere a otorizasyon espesyal. Liy sa a, pou egzanp, pral ajoute pèmisyon SGID nan anyè a epi mete rwx pou itilizatè ak rx pou gwoup ak lòt moun:

chmod 2755 /somedir

Sa a se pito pratik si ou bezwen wè otorizasyon aktyèl yo ke yo mete anvan ou travay avèk yo chmod nan mòd absoli. (Ou pran risk pou yo ranplase otorizasyon si ou pa fè sa.) Se konsa, mwen rekòmande kouri nan mòd relatif si ou bezwen aplike nenpòt nan otorizasyon espesyal yo:

  1. Pou itilize SUID chmod u+s.
  2. Pou itilize SGID chmod g+s.
  3. Pou itilize ti kras kolan chmod + t, ki te swiv pa non fichye a oswa anyè pou ki ou vle mete otorizasyon.

Tablo a rezime tout sa ou bezwen konnen sou jere otorizasyon espesyal.

Otorizasyon nan Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Egzanp travay ak dwa espesyal

Nan egzanp sa a, ou itilize otorizasyon espesyal pou rann li pi fasil pou manm gwoup yo pataje fichye nan anyè gwoup pataje a. Ou bay ti ID la nan ID gwoup la ansanm ak ti jan kolan an, epi ou wè ke yon fwa yo mete, karakteristik yo ajoute pou fè li pi fasil pou manm gwoup yo travay ansanm.

  1. Louvri yon tèminal kote ou se itilizatè a linda. Ou ka kreye yon itilizatè ak lòd la Linda, ajoute modpas pase Linda.
  2. Kreye /data anyè nan rasin lan ak /data/sales subdirectory ak kòmandman an mkdir -p /data/sales. Ranpli cd / done / lavantpou ale nan anyè lavant. Ranpli manyen linda1 и manyen linda2pou kreye de fichye vid ki posede pa linda.
  3. Egzekite su-lisa chanje itilizatè aktyèl la nan itilizatè a lisa, ki moun ki tou se yon manm nan gwoup la lavant.
  4. Egzekite cd / done / lavant ak soti nan anyè sa a egzekite ls-l. Ou pral wè de dosye ki te kreye pa itilizatè a linda ak fè pati gwoup la linda. Ranpli rm -f linda*. Sa a pral efase tou de dosye yo.
  5. Egzekite manyen lisa1 и manyen lisa2yo kreye de dosye ki posede pa itilizatè a lisa.
  6. Egzekite sou- pou elve privilèj ou yo anrasinen.
  7. Egzekite chmod g+s,o+t /data/salespou mete ti jan idantifikasyon gwoup la (GUID) ansanm ak ti jan kolan nan anyè gwoup pataje a.
  8. Egzekite su-linda. Lè sa a, fè manyen linda3 и manyen linda4. Ou ta dwe kounye a wè ke de fichye yo ou te kreye yo posede pa gwoup la lavant, ki se pwopriyetè gwoup la nan / data/sales anyè.
  9. Egzekite rm -rf lisa*. Ti jan kolan an anpeche dosye sa yo efase sou non itilizatè linda a, paske ou pa mèt fichye sa yo. Remake byen ke si itilizatè linda a se pwopriyetè /data/sales anyè a, yo ka efase dosye sa yo de tout fason!

Jesyon ACL (setfacl, getfacl) nan Linux

Menmsi otorizasyon pwolonje yo diskite pi wo a ajoute fonksyonalite itil nan fason Linux okipe otorizasyon yo, li pa pèmèt ou bay otorizasyon pou plis pase yon itilizatè oswa gwoup nan menm dosye a.

Lis kontwòl aksè ofri karakteristik sa a. Anplis de sa, yo pèmèt administratè yo mete otorizasyon default nan yon fason konplèks, kote otorizasyon yo mete ka varye de anyè a anyè.

Konprann ACL yo

Malgre ke subsistèm ACL a ajoute gwo fonksyonalite nan sèvè ou a, li gen yon sèl dezavantaj: se pa tout sèvis piblik sipòte li. Se poutèt sa, ou ka pèdi paramèt ACL ou lè ou kopye oswa deplase dosye, epi lojisyèl backup ou a ka echwe pou fè bak paramèt ACL ou yo.

Sèvis piblik goudwon ​​an pa sipòte ACLs. Pou asire ke paramèt ACL yo pa pèdi lè ou kreye yon backup, sèvi ak etwal olye pou yo goudwon. etwal travay ak opsyon yo menm jan ak goudwon; li jis ajoute sipò pou anviwònman ACL.

Ou kapab tou fè bak ACL ak getfacl, ki ka retabli lè l sèvi avèk lòd setfacl la. Pou kreye yon backup, sèvi ak getfacl -R /directory> file.acls. Pou retabli paramèt ki soti nan yon dosye backup, sèvi ak setfacl --restore=file.acl.

Mank sipò pa kèk zouti pa ta dwe yon pwoblèm. ACL yo souvan aplike nan anyè kòm yon mezi estriktirèl olye ke nan dosye endividyèl yo.
Se poutèt sa, pa pral gen anpil nan yo, men se sèlman kèk, aplike nan kote entelijan nan sistèm nan dosye. Se poutèt sa, retabli ACL orijinal ou te travay avèk yo se relativman fasil, menm si lojisyèl backup ou a pa sipòte yo.

Prepare sistèm dosye a pou ACLs

Anvan ou kòmanse travay ak ACL, ou ka bezwen prepare sistèm fichye ou a pou sipòte ACL. Paske metadata sistèm fichye yo bezwen pwolonje, pa gen toujou sipò default pou ACL nan sistèm fichye a. Si w resevwa yon mesaj "operasyon pa sipòte" lè w ap mete ACL pou yon sistèm fichye, sistèm fichye w la ka pa sipòte ACL.

Pou ranje sa ou bezwen ajoute opsyon a akl mòn nan /etc/fstab pou sistèm fichye a monte ak sipò ACL pa default.

Chanje ak gade anviwònman ACL ak setfacl ak getfacl

Pou mete yon ACL ou bezwen kòmandman an setfacl. Pou wè paramèt ACL aktyèl yo, ou bezwen getfacl. Ekip ls-l pa montre okenn ACL ki egziste deja; li jis montre yon + apre lis pèmisyon an, ki endike ke ACL yo aplike nan dosye a tou.

Anvan mete ACLs, li toujou yon bon lide pou montre aktyèl paramètres ACL ak getfacl. Nan egzanp ki anba a, ou ka wè otorizasyon aktyèl yo, jan yo montre ak ls-l, epi tou jan yo montre ak getfacl. Si w gade ak anpil atansyon, w ap wè enfòmasyon yo montre yo egzakteman menm.

[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

Kòm yon rezilta nan egzekite lòd la getfacl anba a ou ka wè ke otorizasyon yo montre pou twa objè diferan: itilizatè, gwoup ak lòt moun. Koulye a, an n ajoute yon ACL pou bay li ak egzekite otorizasyon pou gwoup kliyan ki pou vann a tou. komand pou sa setfacl -mg:sales:rx /dir. Nan ekip sa a -m endike ke paramèt ACL aktyèl yo bezwen chanje. Apre sa g: lavant: rx di kòmandman an pou mete ACL li-egzekisyon (rx) pou gwoup la (g) lavant. Anba a ou ka wè kisa kòmandman an sanble, osi byen ke pwodiksyon an nan lòd getfacl apre chanje paramèt aktyèl ACL yo.

[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

Kounye a ke ou konprann ki jan yo mete kanpe yon gwoup ACL, li fasil pou konprann ACL pou itilizatè yo ak lòt itilizatè. Pou egzanp, lòd la setfacl -mu:linda:rwx /data bay itilizatè linda otorizasyon nan anyè /data san yo pa fè li pwopriyetè oswa chanje plasman pwopriyetè aktyèl la.

Ekip setfacl gen anpil karakteristik ak opsyon. Yon opsyon ki enpòtan sitou, paramèt la -R. Si yo itilize, opsyon an fè ACL a mete pou tout fichye ak sous-répertoires ki egziste kounye a nan anyè kote ou mete ACL a. Li rekòmande pou w toujou itilize opsyon sa a lè w ap chanje ACL pou repèrtwar ki egziste deja.

Travay ak ACLs Default

Youn nan avantaj ki genyen lè w sèvi ak ACL yo se ke ou ka bay otorizasyon plizyè itilizatè oswa gwoup nan yon anyè. Yon lòt benefis se ke ou ka pèmèt eritaj lè w ap travay ak ACL yo default.

Lè w mete ACL default la, ou detèmine otorizasyon yo pral mete pou tout nouvo atik ki te kreye nan anyè a. Ou dwe konnen ke ACL defo a pa chanje otorizasyon sou dosye ki egziste deja ak sous-dosye yo. Pou chanje yo, ou bezwen ajoute yon ACL nòmal tou!

Sa a enpòtan pou konnen. Si ou vle sèvi ak yon ACL pou konfigirasyon plizyè itilizatè oswa gwoup pou jwenn aksè nan menm anyè a, ou dwe mete ACL a de fwa. Premye itilize setfacl -R -mpou chanje ACL pou dosye aktyèl yo. Lè sa a, sèvi ak setfacl-md:pou pran swen tout nouvo eleman ki pral kreye tou.

Pou mete ACL default ou jis bezwen ajoute opsyon an d apre opsyon -m (lòd zafè!). Se konsa, sèvi ak setfacl -md:g:sales:rx /datasi ou vle lavant gwoup yo li ak egzekite tou sa ki janm kreye nan / done anyè.

Lè w ap itilize ACL default, li ka itil tou pou mete ACL pou lòt moun. Sa a anjeneral pa fè anpil sans paske ou ka tou chanje otorizasyon yo pou lòt moun lè l sèvi avèk chmod. Sepandan, sa ou pa ka fè ak chmod, se pou presize dwa yo dwe akòde lòt itilizatè yo pou chak nouvo dosye ki janm kreye. Si ou vle anpeche lòt moun jwenn nenpòt otorizasyon sou nenpòt bagay ki te kreye nan / done pou egzanp itilize setfacl -md:o::- /data.

ACL ak otorizasyon nòmal yo pa toujou byen entegre. Pwoblèm ka rive si ou aplike yon ACL default nan yon anyè, Lè sa a, atik yo ajoute nan anyè sa a, epi Lè sa a, eseye chanje otorizasyon nòmal yo. Chanjman ki aplike nan otorizasyon nòmal yo p ap byen reflete nan BECA ACL. Pou evite pwoblèm, mete otorizasyon nòmal yo an premye, Lè sa a, mete ACL yo default (epi eseye pa chanje yo ankò apre sa).

Egzanp Jesyon Dwa Ogmante Sèvi ak ACL

Nan egzanp sa a, ou pral kontinye ak /data/account ak /data/sales anyè ou te kreye pi bonè. Nan egzanp anvan yo, ou te asire ke gwoup lavant la gen otorizasyon sou /data/sales ak gwoup kont la gen otorizasyon sou /data/account.

Premyèman, asire w ke gwoup kont la jwenn otorizasyon lekti sou anyè /data/sales la epi gwoup lavant la jwenn otorizasyon pou li sou anyè /data/account.

Lè sa a, ou mete ACLs default pou asire w ke tout nouvo dosye yo gen otorizasyon kòrèk yo mete pou tout nouvo atik yo.

  1. Louvri yon tèminal.
  2. Egzekite setfacl -mg:kont:rx /data/sales и setfacl -mg:sales:rx /data/account.
  3. Egzekite getfaclpou asire w ke otorizasyon yo te mete nan fason ou te vle.
  4. Egzekite setfacl -md:g:kont:rwx,g:sales:rx /data/salespou mete ACL default pou anyè lavant yo.
  5. Ajoute yon ACL default pou anyè /data/account lè l sèvi avèk setfacl -md:g:sales:rwx,g:account:rx /data/kont.
  6. Verifye ke paramèt ACL yo anvigè lè w ajoute yon nouvo fichye nan /data/sales. Ranpli touche /data/sales/newfile epi egzekite getfacl /data/sales/newfile pou tcheke pèmisyon aktyèl yo.

Mete otorizasyon default ak umask

Pi wo a, ou te aprann kijan pou travay ak ACL default. Si w pa itilize yon ACL, gen yon opsyon koki ki detèmine otorizasyon default w ap jwenn: umask (mask ranvèse). Nan seksyon sa a, ou pral aprann kijan pou chanje otorizasyon default yo umask.

Ou ka remake ke lè ou kreye yon nouvo dosye, gen kèk otorizasyon default yo mete. Otorizasyon sa yo detèmine pa anviwònman an umask. Anviwònman koki sa a aplike a tout itilizatè yo lè w konekte. Nan paramèt umask yo itilize yon valè nimerik, ki soustraksyon nan otorizasyon maksimòm ki ka otomatikman mete pou fichye a; anviwònman maksimòm pou fichye yo se 666 epi pou anyè yo se 777.

Sepandan, gen kèk eksepsyon ki aplike nan règ sa a. Ou ka jwenn yon apèsi konplè sou anviwònman yo umask nan tablo ki anba a.

Nan nimewo yo itilize nan umask, tankou nan ka a nan agiman nimerik pou lòd la chmod, premye chif la refere a otorizasyon itilizatè a, dezyèm chif la refere a otorizasyon gwoup la, ak dènye a refere a otorizasyon default yo mete pou lòt moun. Siyifikasyon umask default 022 bay 644 pou tout nouvo fichye ak 755 pou tout nouvo anyè ki te kreye sou sèvè w la.

Konplete BECA de tout valè nimerik umask ak rezilta yo nan tablo ki anba a.

Otorizasyon nan Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Yon fason fasil pou wè ki jan paramèt umask la ap travay se jan sa a: kòmanse ak otorizasyon default fichye a mete sou 666 epi soustraksyon umask la pou jwenn otorizasyon efikas yo. Fè menm bagay la pou anyè a ak otorizasyon default li yo nan 777.

Gen de fason pou chanje anviwònman umask la: pou tout itilizatè yo ak pou itilizatè endividyèl yo. Si ou vle mete umask la pou tout itilizatè, ou dwe asire ke anviwònman umask la pran an kont lè w kòmanse fichye anviwònman koki, jan sa espesifye nan /etc/profile. Apwòch ki kòrèk la se kreye yon script shell ki rele umask.sh nan anyè /etc/profile.d epi presize umask ou vle itilize nan script shell sa a. Si umask la chanje nan fichye sa a, li aplike a tout itilizatè apre yo fin antre nan sèvè a.

Yon altènativ a mete umask la atravè /etc/profile ak dosye ki gen rapò, kote li aplike a tout itilizatè ki konekte, se chanje anviwònman yo umask nan yon dosye ki rele .profile ki kreye nan anyè lakay chak itilizatè.

Anviwònman yo aplike nan dosye sa a aplike sèlman pou itilizatè endividyèl la; pakonsekan sa a se yon bon metòd si ou bezwen plis detay. Mwen pèsonèlman renmen karakteristik sa a chanje umask default pou itilizatè rasin nan 027 pandan itilizatè nòmal yo ap kouri ak umask default 022.

Travay ak atribi itilizatè pwolonje

Sa a se seksyon final la sou otorizasyon Linux.

Lè w ap travay ak otorizasyon, toujou gen yon relasyon ant yon itilizatè oswa yon objè gwoup ak otorizasyon yo ke itilizatè oswa objè gwoup yo genyen sou yon dosye oswa anyè. Yon metòd altènatif pou pwoteje dosye sou yon sèvè Linux se travay ak atribi.
Atribi yo fè travay yo kèlkeswa itilizatè a aksede dosye a.

Menm jan ak ACLs, atribi fichye yo ka bezwen enkli opsyon an mòn.

Sa a se yon opsyon user_xattr. Si ou resevwa yon mesaj "operasyon pa sipòte" lè w ap travay ak atribi itilizatè pwolonje, asire w ke ou mete paramèt la. mòn nan /etc/fstab.

Anpil atribi yo dokimante. Gen kèk atribi ki disponib men yo poko aplike. Pa sèvi ak yo; yo pap pote anyen pou ou.

Anba a se atribi ki pi itil ou ka aplike:

A Atribi sa a asire ke tan aksè dosye a pa chanje.
Tipikman, chak fwa yo louvri yon dosye, tan aksè dosye a dwe anrejistre nan metadata dosye a. Sa a yon enpak negatif sou pèfòmans; Se konsa, pou dosye ki regilyèman jwenn aksè, atribi a A ka itilize pou enfim karakteristik sa a.

a Atribi sa a pèmèt ou ajoute men pa retire yon dosye.

c Si w ap itilize yon sistèm fichye ki sipòte konpresyon nan nivo volim, atribi fichye sa a asire ke fichye a konprese premye fwa mekanis konpresyon an aktive.

D Atribi sa a asire ke chanjman nan dosye yo ekri sou disk imedyatman olye ke yo nan kachèt an premye. Sa a se yon atribi itil sou dosye baz done enpòtan pou asire w ke yo pa pèdi ant kachèt dosye a ak kondwi a difisil.

d Atribi sa a asire ke dosye a pa pral sove nan sovgad kote yo itilize sèvis piblik la pil fatra.

I Atribi sa a pèmèt Indexing pou anyè kote li pèmèt. Sa a bay aksè dosye pi rapid pou sistèm fichye primitif tankou Ext3 ki pa sèvi ak baz done B-tree a pou aksè dosye rapid.

i Atribi sa a fè dosye a imuiabl. Se poutèt sa, pa gen okenn chanjman ka fè nan dosye a, ki se itil pou dosye ki bezwen plis pwoteksyon.

j Atribi sa a asire ke, sou yon sistèm fichye ext3, fichye a premye ekri nan jounal la ak Lè sa a, nan blòk done sou disk la.

s Ranplase blòk yo kote yo te sove dosye a nan 0s apre yo fin efase fichye a. Sa a asire ke dosye a pa ka restore yon fwa li te efase.

u Atribi sa a estoke enfòmasyon sou sipresyon an. Sa a pèmèt ou devlope yon sèvis piblik ki travay ak enfòmasyon sa a pou sove fichye efase yo.

Si ou vle aplike atribi yo, ou ka itilize kòmandman an koze. Pou egzanp, sèvi ak chattr +s somefilepou aplike atribi nan somefile. Bezwen retire yon atribi? Lè sa a, sèvi ak chattr -s somefileepi li pral retire. Pou jwenn yon apèsi sou tout atribi ki aplike kounye a, sèvi ak lòd la lsattr.

Rezime

Nan atik sa a, ou te aprann kijan pou travay ak otorizasyon. Ou li sou twa otorizasyon debaz yo, otorizasyon avanse, ak kijan pou aplike ACL yo sou yon sistèm dosye. Ou te aprann tou kijan pou itilize opsyon umask pou aplike otorizasyon default yo. Nan fen atik sa a, ou te aprann kijan pou itilize atribi itilizatè pwolonje pou aplike yon lòt kouch sekirite sistèm dosye.

Si ou te renmen tradiksyon sa a, tanpri ekri sou li nan kòmantè yo. Ap gen plis motivasyon pou fè tradiksyon itil.

Korije kèk fot ak erè gramatikal nan atik la. Redwi kèk paragraf ki ankonbran an pi piti pou pi bon lizibilite.

Olye de "Sèlman yon moun ki gen dwa administratif nan anyè a ka aplike pèmisyon pou egzekite." fikse a "Sèlman yon moun ki gen otorizasyon ekri sou anyè a ka aplike pèmisyon pou egzekite.", ki ta pi kòrèk.

Mèsi pou kòmantè yo berez.

Ranplase:
Si ou pa mèt itilizatè a, koki a pral tcheke pou wè si ou se yon manm nan yon gwoup, ke yo rele tou gwoup la nan dosye a.

Sou:
Si ou pa pwopriyetè dosye a, koki a pral tcheke pou wè si ou se yon manm nan yon gwoup ki gen otorizasyon sou dosye a. Si ou se yon manm nan gwoup sa a, ou pral jwenn aksè nan dosye a ak otorizasyon ke gwoup la te mete, epi koki a ap sispann tcheke.

Mèsi pou kòmantè ou CryptoPirate

Sous: www.habr.com

Add nouvo kòmantè