Bii o ṣe le Ṣeto Awọn atokọ Iṣakoso Iwọle (ACLs) ati Awọn ohun-ini Disk fun Awọn olumulo ati Awọn ẹgbẹ


Awọn atokọ Iṣakoso Wiwọle (ti a tun mọ ni ACLs) jẹ ẹya ti ekuro Linux ti o fun laaye lati ṣalaye awọn ẹtọ iraye ti o dara julọ fun awọn faili ati awọn ilana ilana ju awọn ti a ṣalaye nipasẹ awọn igbanilaaye ugo/rwx deede.

Fun apẹẹrẹ, boṣewa awọn igbanilaaye ugo/rwx ko gba laaye lati ṣeto awọn igbanilaaye oriṣiriṣi fun oriṣiriṣi awọn olumulo kọọkan tabi awọn ẹgbẹ. Pẹlu awọn ACL eyi jẹ rọrun rọrun lati ṣe, bi a yoo rii ninu nkan yii.

Ṣiṣayẹwo Ibamu Eto Eto Faili pẹlu awọn ACL

Lati rii daju pe awọn eto faili rẹ n ṣe atilẹyin awọn ACL lọwọlọwọ, o yẹ ki o ṣayẹwo pe wọn ti gbe pẹlu lilo aṣayan acl. Lati ṣe eyi, a yoo lo tune2fs fun awọn ọna faili ext2/3/4 bi a ti tọka si isalẹ. Rọpo/dev/sda1 pẹlu ẹrọ tabi eto faili ti o fẹ ṣayẹwo:

# tune2fs -l /dev/sda1 | grep "Default mount options:"

Akiyesi: Pẹlu XFS, Awọn atokọ Iṣakoso Wiwọle ni atilẹyin lati inu apoti.

Ninu eto faili ext4 atẹle, a le rii pe awọn ACL ti muu ṣiṣẹ fun/dev/xvda2:

# tune2fs -l /dev/xvda2 | grep "Default mount options:"

Ti aṣẹ ti o wa loke ko ba tọka pe a ti gbe eto faili pẹlu atilẹyin fun awọn ACL, o ṣee ṣe julọ nitori aṣayan noacl ti o wa ni/ati be be lo/fstab.

Ni ọran naa, yọ kuro, yọkuro faili faili, ati lẹhinna gbe lẹẹkansi, tabi tun atunbere eto rẹ lẹhin fifipamọ awọn ayipada si/ati be be lo/fstab.

Ifihan ACLs ni Linux

Lati ṣapejuwe bi awọn ACL ṣe n ṣiṣẹ, a yoo lo ẹgbẹ kan ti a npè ni awọn olupilẹṣẹ ati ṣafikun awọn olumulo walterwhite ati saulgoodman (bẹẹni, Emi jẹ Olufẹ Bireki Kikan!) Si.:

# groupadd developers
# useradd walterwhite
# useradd saulgoodman
# usermod -a -G developers walterwhite
# usermod -a -G developers saulgoodman

Ṣaaju ki a to tẹsiwaju, jẹ ki a rii daju pe awọn olumulo mejeeji ti ni afikun si ẹgbẹ awọn oludagbasoke:

# id walterwhite
# id saulgoodman

Jẹ ki a ṣẹda itọsọna bayi ti a pe ni idanwo ni/mnt, ati faili kan ti a npè ni acl.txt inu (/mnt/test/acl.txt).

Lẹhinna a yoo ṣeto oluwa ẹgbẹ si awọn aṣagbega ati yiyipada awọn igbanilaaye ugo/rwx aiyipada rẹ pada si 770 (nitorinaa fifun kika, kọ, ati ṣiṣe awọn igbanilaaye ti a fun fun oluwa ati oluṣakoso ẹgbẹ ti faili naa):

# mkdir /mnt/test
# touch /mnt/test/acl.txt
# chgrp -R developers /mnt/test
# chmod -R 770 /mnt/test

Gẹgẹbi a ti nireti, o le kọwe si /mnt/test/acl.txt bi walterwhite tabi saulgoodman:

# su - walterwhite
# echo "My name is Walter White" > /mnt/test/acl.txt
# exit
# su - saulgoodman
# echo "My name is Saul Goodman" >> /mnt/test/acl.txt
# exit

Nitorinaa o dara. Sibẹsibẹ, a yoo rii iṣoro laipẹ nigbati a nilo lati fun ni iraye si kikọ si /mnt/test/acl.txt fun olumulo miiran ti ko si ninu ẹgbẹ awọn oludagbasoke.

Awọn igbanilaaye ugo/rwx deede yoo nilo pe ki a fi olumulo tuntun kun si ẹgbẹ awọn oludasile, ṣugbọn iyẹn yoo fun u/awọn igbanilaaye kanna lori gbogbo awọn ohun-ini ti ẹgbẹ naa. Iyẹn ni deede ibi ti awọn ACL wa ni ọwọ.

Ṣiṣeto ACL ni Linux

Awọn oriṣi meji ti ACL wa: awọn ACL iraye si ni (eyiti a lo si faili kan tabi itọsọna), ati aiyipada (aṣayan) ACLs, eyiti o le ṣee lo si itọsọna nikan.

Ti awọn faili inu itọsọna kan nibiti a ti ṣeto ACL aiyipada ko ni ACL ti ara wọn, wọn jogun ACL aiyipada ti ilana obi wọn.

Jẹ ki a fun gacanepa olumulo ka ati kọ iraye si /mnt/test/acl.txt. Ṣaaju ṣiṣe iyẹn, jẹ ki a wo awọn eto ACL lọwọlọwọ ninu itọsọna yẹn pẹlu:

# getfacl /mnt/test/acl.txt

Lẹhinna yi awọn ACL pada lori faili naa, lo u: atẹle nipa orukọ olumulo ati : rw lati tọka awọn igbanilaaye kika/kọ:

# setfacl -m u:gacanepa:rw /mnt/test/acl.txt

Ati ṣiṣe getfacl lori faili lẹẹkansi lati ṣe afiwe. Aworan atẹle n fihan\"Ṣaaju" ati\"Lẹhin":

# getfacl /mnt/test/acl.txt

Nigbamii ti, a yoo nilo lati fun awọn miiran lati ṣe awọn igbanilaaye lori itọsọna/mnt/idanwo:

# chmod +x /mnt/test

Ranti pe lati le wọle si awọn akoonu ti itọsọna kan, olumulo deede nilo awọn igbanilaaye ṣiṣe lori itọsọna yẹn.

Gacanepa olumulo yẹ ki o ni anfani bayi lati kọ si faili naa. Yipada si akọọlẹ olumulo naa ki o ṣiṣẹ pipaṣẹ wọnyi lati jẹrisi:

# echo "My name is Gabriel Cánepa" >> /mnt/test/acl.txt

Lati ṣeto ACL aiyipada si itọsọna kan (eyiti awọn akoonu rẹ yoo jogun ayafi ti o ba tun kọ bibẹkọ), ṣafikun d: ṣaaju ofin naa ki o ṣalaye itọsọna kan dipo orukọ faili kan:

# setfacl -m d:o:r /mnt/test
# getfacl /mnt/test/

ACL ti o wa loke yoo gba awọn olumulo laaye ko si ninu ẹgbẹ eni lati ni iraye si awọn akoonu ọjọ iwaju ti itọsọna/mnt/idanwo. Ṣe akiyesi iyatọ ninu iṣiṣẹ ti getfacl/mnt/idanwo ṣaaju ati lẹhin iyipada:

Lati yọ ACL kan pato, rọpo -m ninu awọn ofin loke pẹlu -x . Fun apere,

# setfacl -x d:o /mnt/test

Ni omiiran, o tun le lo aṣayan -b lati yọ GBOGBO ACL ni igbesẹ kan:

# setfacl -b /mnt/test

Fun alaye diẹ sii ati awọn apẹẹrẹ lori lilo awọn ACL, jọwọ tọka si ori 10, apakan 2, ti OpenSUSE Aabo Aabo (tun wa fun gbigba lati ayelujara laisi idiyele ni ọna kika PDF).

Ṣeto Awọn ohun-ini Disk Linux lori Awọn olumulo ati Awọn ọna eto faili

Aaye ifipamọ jẹ orisun miiran ti o gbọdọ lo ni iṣọra ati abojuto. Lati ṣe eyi, awọn ipin le ṣee ṣeto lori ipilẹ eto faili kan, boya fun awọn olumulo kọọkan tabi fun awọn ẹgbẹ.

Nitorinaa, a fi opin si lilo disk ti a gba laaye fun olumulo ti a fun tabi ẹgbẹ kan pato, ati pe o le ni idaniloju pe awọn disiki rẹ kii yoo kun si agbara nipasẹ olumulo aibikita (tabi aimọ).

Ohun akọkọ ti o gbọdọ ṣe lati le mu ki awọn ipin jẹ lori eto faili ni lati gbe pẹlu usrquota tabi grpquota (fun olumulo ati awọn ipin ẹgbẹ, lẹsẹsẹ) awọn aṣayan inu/abbl/fstab.

Fun apẹẹrẹ, jẹ ki a jẹ ki awọn ipin orisun olumulo lori/dev/vg00/vol_backups ati awọn ipin orisun ẹgbẹ lori/dev/vg00/vol_projects.

Akiyesi pe a lo UUID lati ṣe idanimọ eto faili kọọkan.

UUID=f6d1eba2-9aed-40ea-99ac-75f4be05c05a /home/projects ext4 defaults,grpquota 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4 defaults,usrquota 0 0

Yọ ati yọkuro awọn ọna ṣiṣe faili mejeeji:

# umount /home/projects
# umount /home/backups
# mount -o remount /home/projects
# mount -o remount /home/backups 

Lẹhinna ṣayẹwo pe awọn aṣayan usrquota ati awọn ibeere grpquota wa ninu iṣujade ti oke (wo afihan ni isalẹ):

# mount | grep vg00

Lakotan, ṣiṣe awọn ofin wọnyi lati bẹrẹ ati mu awọn ipin jẹ:

# quotacheck -avugc
# quotaon -vu /home/backups
# quotaon -vg /home/projects

Iyẹn sọ, jẹ ki a fi awọn ipin si bayi si orukọ olumulo ati ẹgbẹ ti a mẹnuba tẹlẹ. O le nigbamii mu awọn ipin kuro pẹlu ipin.

Ṣiṣeto Awọn ohun-ini Disk Linux

Jẹ ki a bẹrẹ nipa siseto ACL lori/ile/awọn afẹyinti fun gacanepa olumulo, eyiti yoo fun u ni kika, kọ, ati ṣiṣe awọn igbanilaaye lori itọsọna naa:

# setfacl -m u:gacanepa:rwx /home/backups/

Lẹhinna pẹlu,

# edquota -u gacanepa

A yoo ṣe opin asọ = 900 ati idiwọn lile = awọn bulọọki 1000 (awọn baiti 1024/bulọọki * awọn bulọọki 1000 = awọn baiti 1024000 = 1 MB) ti lilo aaye aaye disk.

A tun le gbe opin ti 20 ati 25 bi awọn asọ ti o ni idiwọn lile lori nọmba awọn faili ti olumulo yii le ṣẹda.

Aṣẹ ti o wa loke yoo ṣe ifilọlẹ olootu ọrọ ($EDITOR) pẹlu faili igba diẹ nibiti a le ṣeto awọn opin ti a mẹnuba tẹlẹ:

Awọn eto wọnyi yoo fa ikilọ lati han gacanepa olumulo nigbati o ba ti de ọdọ 900-block tabi 20-inode ifilelẹ fun akoko oore aiyipada ti awọn ọjọ 7.

Ti ipo a-ko-ju ko ti parẹ lẹhinna (fun apẹẹrẹ, nipa yiyọ awọn faili), opin asọ yoo di opin lile ati pe olumulo yii ni idilọwọ lati lilo aaye ibi-itọju diẹ sii tabi ṣiṣẹda awọn faili diẹ sii.

Lati ṣe idanwo, jẹ ki olumulo gacanepa gbiyanju lati ṣẹda faili 2 MB ti o ṣofo ti a npè ni test1 inu/ile/awọn afẹyinti:

# dd if=/dev/zero of=/home/backups/test1 bs=2M count=1
# ls -lh /home/backups/test1

Bi o ti le rii, faili išišẹ kikọ kuna nitori idiyele disiki ti kọja. Niwọn igba ti a kọ 1000 KB akọkọ si disiki, abajade ninu ọran yii yoo ṣeese jẹ faili ibajẹ.

Bakan naa, o le ṣẹda ACL fun awọn ẹgbẹ idagbasoke lati fun awọn ọmọ ẹgbẹ ti rwx yẹn ni iraye si/ile/awọn iṣẹ akanṣe:

# setfacl -m g:developers:rwx /home/projects/

Ati ṣeto awọn opin ipin pẹlu:

# edquota -g developers

Gẹgẹ bi a ṣe pẹlu gacanepa olumulo ni iṣaaju.

A le ṣalaye akoko oore-ọfẹ fun nọmba eyikeyi ti awọn aaya, iṣẹju, awọn wakati, awọn ọjọ, awọn ọsẹ, tabi awọn oṣu nipasẹ ṣiṣe.

# edquota -t

ati mimu awọn iye ṣe labẹ akoko oore-ọfẹ Dẹkun ati akoko oore ọfẹ Inode.

Ni idakeji lati dènà tabi lilo inode (eyiti o ṣeto lori olumulo tabi ipilẹ ẹgbẹ), akoko oore-ọfẹ ti ṣeto eto-jakejado.

Lati ṣe iroyin awọn ipin, o le lo ipin -u [olumulo] tabi quota -g [ẹgbẹ] fun atokọ kiakia tabi repquota -v [/ path/to/systemystem] fun alaye diẹ sii (ọrọ-ọrọ) ati ijabọ kika daradara.

Nitoribẹẹ, iwọ yoo fẹ lati rọpo [olumulo] , [ẹgbẹ] , ati [/ path/to/filesystem] pẹlu olumulo kan pato/awọn orukọ ẹgbẹ ati eto faili ti o fẹ ṣayẹwo.

Akopọ

Ninu nkan yii a ti ṣalaye bii o ṣe le ṣeto Awọn atokọ Iṣakoso Wiwọle ati awọn ipin disiki fun awọn olumulo ati awọn ẹgbẹ. Lilo awọn mejeeji, iwọ yoo ni anfani lati ṣakoso awọn igbanilaaye ati lilo disk diẹ sii daradara.

Ti o ba fẹ lati ni imọ siwaju sii nipa awọn ipin, o le tọka si Quota Mini-HowTo ninu Project Documentation Linux.

Tialesealaini lati sọ, o tun le gbẹkẹle wa lati dahun awọn ibeere. O kan fi wọn silẹ nipa lilo fọọmu asọye ni isalẹ ati pe a yoo ni idunnu pupọ lati wo.