Tazi statiia e chast ot Kniga za Debian GNU/Linux na bulgarski
Ot izvestno vreme nasam vsichki razprostraneni failovi sistemi v Linuks poddurzhat razshirenite svoistva za kontrol nad pravata, izvestni kato ACLs (Access Control Lists) ili "Spisutsi za kontrol na dostupa". Vuprosnite razshireniia sa bazirani na standarta POSIX 1003.1e. Neobiasnimo e zashto populiarnostta na tozi metod za upravlenie na potrebitelskite prava e tolkova nisko razprostranena, sled kato izpolzvaneto na ACLs e ednovremenno efektivno i lesno.
Nakratko shte obiasnim kakuv e tehniiat smisul. Kakto vseki ot vas znae, t. nar. Unix permissions ili prosto standartnite prava v edna Unix/Linux-sistema sa organizirani suvsem prosto: te se definirat po sobstvenik, grupa i ostanali potrebiteli. V goliama chast ot sluchaite tazi organizatsiia e dostatuchna. Kogato imame uslozhneni nuzhdi obache, tia se okazva neudobna. Predstavete si, che imate direktoriia, koiato mozhe da se chete samo ot sobstvenika i na koiato sme dali chmod 700. Iskate da razreshite na drug da vliza v neia. Togava pravite nova grupa, v koiato vklyuchvate dvamata potrebiteli i promeniate pravata na direktoriiata taka, che osven ot sobstvenika da mozhe da se chete i ot grupata, koeto stava s komandata chmod 750. CHudesno. A ako iskate da napravite sushtoto i s drugi direktorii i drugi potrebiteli? Triabva da suzdavate novi grupi i taka dokato stignete do moment, v koito veche prosto izpuskate nishkata.
Eto tuk na pomosht idvat "Spisutsite za kontrol na dostupa". S tiah mozhem lesno da delegirame raznoobrazni prava na vseki vurhu vsichko, bez da pipame nito potrebitelite, nito grupite, nito da promeniame standartnite Unix permissions na direktoriiata/faila, t.e. bez da si igraem s komandi kato chmod ili chown. Vazhno e da otbelezhim, che izpolzvaneto na ACLs ne prechi s nishto na prilaganeto na standartnite komandi za upravlenie na Unix-pravata. Dvata metoda suzhitelstvat suvsem mirno.
Paketut acl
Kato za nachalo triabva izpulnim komandata:
apt-get install acl
Tozi paket sudurzha dvata osnovni instrumenta za upravlenie na ACLs, koito shte se prevurnat v nashata diasna ruka.
Optsiiata acl v /etc/fstab
Sledva da redaktirame faila /etc/fstab, za da kazhem na iadroto da vklyuchi poddruzhkata na ACLs za suotvetnite diskovi dialove. Tova stava lesno, s dobaviane na optsiia acl i premontirane na suotvetniia dial. Tuk e miastoto da otbelezhim, che Linuks poddurzha acl za Ext2/Ext3 edva v poslednite versii na iadrata ot seriiata 2.4 i v 2.6. Ako polzvate failovata sistema XFS, ne e neobhodimo da pipate nishto v fstab, zashtoto tazi failova sistema idva po podrazbirane s vgradena poddruzhka na ACLs. Ako iskate poddruzhka na ACLs v Linuks, preporuchitelno e da se sprete na XFS ili Ext2/Ext3 sus suotvetnata versiia na iadroto, koiato poddurzha optsiiata acl (tia e nuzhna samo za Ext2/Ext3).
Primer za fstab pri Ext2/Ext3.
/dev/hda2 /home ext3 rw,usrquota,nosuid,nodev,noatime,acl 0 0
Komandite getfacl i setfacl
S komandata getfacl izvlichame informatsiia za acl-statusa na dadeniia fail ili direktoriia.
# getfacl shots/
# file: shots
# owner: nikola
# group: nikola
user::rwx
group::r-x
other::r-x
Taka izglezhdat pravata na vsiaka direktoriia po podrazbirane. V momenta tazi direktoriia e sobstvenost na nikola, no vseki mozhe da vliza i da chete v neia.
chmod 700 shots/
ls -l shots
drwx------ 5 nikola nikola 111 2004-06-13 09:57 shots/
Sega veche nikoi drug ne mozhe da vliza v tazi direktoriia osven neiniia sobstvenik. Tova e chudesno, no da rechem, che iskame da publikuvame direktoriiata v ueb. Togava triabva da razreshim na uebsurvura da ia chete. Tova shte stane s komandata setfacl. V Debian potrebiteliat na uebsurvura e www-data.
setfacl -m u:www-data:r-x shots/
getfacl shots/
# file: shots
# owner: nikola
# group: nikola
user::rwx
user:www-data:r-x
group::---
group::---
mask::r-x
other::---
V tozi sluchai nie razreshihme na potrebitelia (flagut za potrebitel e u, a za grupa - g) www-data da chete i da izpulniava (flagovete r i x sa poznati ot komandata chmod) v tazi direktoriia.
Tuk reshihme edna prosta i banalna zadacha, s koeto iskahme da obiasnim prostichko i nakratko kakuv e smisulut ot izpolzvaneto na ACLs. Vsichki optsii i vuzmozhnosti na komandata setfacl sa opisani podrobno v suotvetnata man-stranitsa.
Za lyuboznatelnite mozhe da bude ot polza tozi material. Informatsiiata v nego e prednaznachena konkretno za Fedora, no vsushtnost e validna za vsiaka Linuks-distributsiia.
Proektut Kniga za Debian GNU/Linux na bulgarski e otvoren za avtori, gotovi da spodeliat opita si ot rabotata s nai-goliamata Linuks-distributsiia. Vsichki zhelaeshti mogat da se oburnat napravo kum poshtenskiia spisuk na proekta, kato predlagat materiali ili budat vklyucheni kato avtori (s prava za commit v CVS-hranilishteto).