Linux-da ACL-leri (Giriş dolandyryş sanawlary) ulanyp, ygtybarly faýllar/kataloglar
Ulgam dolandyryjysy hökmünde ilkinji nobatda maglumatlary rugsatsyz girişden goramak we goramak bolar. Chmod, chown, chgrp… we ş.m. ýaly käbir peýdaly Linux buýruklaryny ulanyp goýýan rugsatlarymyzy hemmämiz bilýäris, ýöne bu deslapky rugsat toplumlarynyň käbir çäklendirmeleri bar we käwagt zerurlyklarymyza görä işlemän biler. Mysal üçin, bir katalogda ýa-da faýlda dürli ulanyjylar üçin dürli rugsat toplumlaryny gurup bilmeris. Şeýlelikde, giriş gözegçilik sanawlary (ACL) ýerine ýetirildi.
Aýdaly, “tecmint1”, “tecmint2” we “tecmint3” atly üç ulanyjy bar. Umumy topara eýe bolanlaryň hersine “acl” diýilýär. Ulanyjy “tecmint1” diňe “tecmint2” ulanyjysynyň “tecmint1” eýeçiligindäki faýllary okap we olara girip biljekdigini isleýär we bu meselede başga hiç kimiň ygtyýary bolmaz.
ACL-ler (Giriş dolandyryş sanawlary) bize şol bir hiläni etmäge mümkinçilik berýär. Bu ACL-ler ulanyjy, topar we ulanyjylaryň sanawynda bolmadyk islendik ulanyjy topary üçin rugsat bermäge mümkinçilik berýär.
Bellik: Redhat Önüm resminamalaryna laýyklykda, ext3 faýl ulgamy we NFS eksport edilen faýl ulgamlary üçin ACL goldawyny berýär.
Linux ulgamlarynda ACL goldawyny nädip barlamaly
Öňe gitmezden ozal häzirki ýadro we gurnalan faýl ulgamlarynda ACL-ler üçin goldaw bolmaly.
Faýl ulgamy we POSIX_ACL=Y opsiýasy üçin ACL goldawyny barlamak üçin aşakdaky buýrugy işlediň (eger Y ýerine N bar bolsa, bu Kerneliň ACL-i goldamaýandygyny we täzeden düzülmelidigini aňladýar).
grep -i acl /boot/config* CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_JFS_POSIX_ACL=y CONFIG_XFS_POSIX_ACL=y CONFIG_BTRFS_FS_POSIX_ACL=y CONFIG_FS_POSIX_ACL=y CONFIG_GENERIC_ACL=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_NFS_V3_ACL=y CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3_ACL=y CONFIG_NFS_ACL_SUPPORT=m CONFIG_CIFS_ACL=y CONFIG_9P_FS_POSIX_ACL=y
ACL-ler bilen oýnamaga başlamazdan ozal paketleriň gurnalandygyna göz ýetiriň. Aşakda yum ýa-da apt-get ulanyp gurnamaly zerur paketler bar.
yum install nfs4-acl-tools acl libacl [on RedHat based systems]
mount | grep -i root /dev/mapper/fedora-root on / type ext4 (rw,relatime,data=ordered)
Ouröne biziň ýagdaýymyzda, acl görkezilmeýär. Şeýlelik bilen, indiki bölümde acl opsiýasyny ulanyp, gurnalan bölümi täzeden aýyrmaly. Emma, öňe gitmezden ozal, bölümiň acl opsiýasy bilen gurnalandygyna ýa-da ýokdugyna göz ýetirmek üçin başga bir mümkinçiligimiz bar, sebäbi soňky ulgam üçin deslapky gurnama opsiýasy bilen birleşdirilip bilner.
tune2fs -l /dev/mapper/fedora-root | grep acl Default mount options: user_xattr acl
Aboveokardaky çykyşda, deslapky gurnama opsiýasynyň eýýäm acl üçin goldawynyň bardygyny görüp bilersiňiz. Başga bir wariant, aşakda görkezilişi ýaly bölümi täzeden aýyrmak.
mount -o remount,acl /
Ondan soň, hemişelik bolmagy üçin aşakdaky ýazgyny '/ etc/fstab' faýlyna goşuň.
/dev/mapper/fedora-root / ext4 defaults,acl 1 1
Againene-de bölümi aýyryň.
mount -o remount /
NFS serwerinde, NSF serweri tarapyndan eksport edilýän faýl ulgamy ACL-ni goldaýan bolsa we ACL-leri NFS Müşderileri okap bilýän bolsa, ACL-ler müşderi ulgamy tarapyndan ulanylýar.
NFS paýnamasyndaky ACL-leri öçürmek üçin NFS Serwerindäki/etc/exportfs faýlyna\no_acl opsiýasyny goşmaly. NSF müşderi tarapynda öçürmek üçin gurnama wagtynda\no_acl opsiýasyny ulanyň.
Linux ulgamlarynda ACL goldawyny nädip durmuşa geçirmeli
ACL-leriň iki görnüşi bar:
- Giriş ACL-leri: Giriş ACL-leri islendik faýlda ýa-da katalogda rugsat bermek üçin ulanylýar.
- Bellenen ACL-ler: Bellenen ACL-ler diňe belli bir katalogda giriş gözegçilik sanawyny bermek/düzmek üçin ulanylýar.
“ACL” bilen “ACL” -iň arasyndaky tapawut:
- Bellenen ACL diňe katalog derejesinde ulanylyp bilner.
- Şol bukjanyň içinde döredilen islendik kiçi katalog ýa-da faýl ACL-leri esasy katalogyndan miras alar. Beýleki tarapdan, bir faýl, giriş ACL-leri hökmünde deslapky ACL-leri miras alýar.
- Adaty ACL-leri sazlamak üçin\- d ulanýarys we Bellenen ACL-ler islege bagly.
Belli bir faýl ýa-da katalog üçin deslapky ACL-leri kesgitlemek üçin getfacl buýrugyny ulanyň. Aşakdaky mysalda getfacl “Saz” bukjasy üçin deslapky ACL-leri almak üçin ulanylýar.
getfacl Music/ # file: Music/ # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:group::r-x default:other::rw-
Belli bir faýl ýa-da katalog üçin deslapky ACL-leri bellemek üçin “setfacl” buýrugyny ulanyň. Aşakdaky mysalda setfacl buýrugy “Saz” bukjasynda täze ACL-leri (okaň we ýerine ýetiriň) düzer.
setfacl -m d:o:rx Music/ getfacl Music/ # file: Music/ # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:group::r-x default:other::r-x
Islendik faýlda ýa-da katalogda sazlamak ýa-da üýtgetmek üçin “setfacl” buýrugyny ulanyň. Mysal üçin, “tecmint1” ulanyjysyna okamak we ýazmak üçin rugsat bermek.
# setfacl -m u:tecmint1:rw /tecmint1/example
ACL-i islendik faýlda ýa-da katalogda görmek üçin getfacl buýrugyny ulanyň. Mysal üçin, ACL-ni “/ tecmint1/example” -da görmek üçin aşakdaky buýrugy ulanyň.
# getfacl /tecmint1/example # file: tecmint1/example/ # owner: tecmint1 # group: tecmint1 user::rwx user:tecmint1:rwx user:tecmint2:r-- group::rwx mask::rwx other::---
ACL-ni islendik faýl/katalogdan aýyrmak üçin aşakda görkezilişi ýaly x we b opsiýalaryny ulanýarys.
# setfacl -x ACL file/directory # remove only specified ACL from file/directory. # setfacl -b file/directory #removing all ACL from file/direcoty
Geliň, aşakdaky ssenariýa boýunça ACL-ni durmuşa geçireliň.
Iki ulanyjy (tecmint1 we tecmint2), ikisinde-de “acl” atly ikinji derejeli topar bar. “Tecmint1” -e degişli bir bukjany dörederis we “tecmint2” ulanyjysyna şol katalogda okamaga we ýerine ýetirmäge rugsat bereris.
1-nji ädim: Iki ulanyjy dörediň we ikisinden parol aýyryň
for user in tecmint1 tecmint2 > do > useradd $user > passwd -d $user > done Removing password for user tecmint1. passwd: Success Removing password for user tecmint2. passwd: Success
2-nji ädim: Ikinji topara topar we ulanyjy dörediň.
groupadd acl usermod -G acl tecmint1 usermod -G acl tecmint2
3-nji ädim: Katalog/tecmint dörediň we eýeçiligini tecmint1 diýip üýtgediň.
mkdir /tecmint1 chown tecmint1 /tecmint1/
ls -ld /tecmint1/ drwxr-xr-x 2 tecmint1 root 4096 Apr 17 14:46 /tecmint1/
getfacl /tecmint1 getfacl: Removing leading '/' from absolute path names # file: tecmint1 # owner: tecmint1 # group: root user::rwx group::r-x other::r-x
4-nji ädim: tecmint1 bilen giriň we/tecmint bukjasynda katalog dörediň.
[[email ~]$ su - tecmint1 Last login: Thu Apr 17 14:49:16 IST 2014 on pts/4
[[email ~]$ cd /tecmint1/ [[email tecmint1]$ mkdir example
[[email tecmint1]$ ll total 4 drwxrwxr-x 2 tecmint1 tecmint1 4096 Apr 17 14:50 example
[[email tecmint1]$ whoami tecmint1
5-nji ädim: Indi “setfacl” ulanyp ACL-i düzüň, şonuň üçin “tecmint1” -iň ähli rwx rugsatlary bolar, “tecmint2” diňe “mysal” bukjasynda rugsat okar we beýlekileriň rugsady bolmaz.
$ setfacl -m u:tecmint1:rwx example/ $ setfacl -m u:tecmint2:r-- example/ $ setfacl -m other:--- example/ $ getfacl example/ # file: example # owner: tecmint1 # group: tecmint1 user::rwx user:tecmint1:rwx user:tecmint2:r-- group::r-x mask::rwx other::---
6-njy ädim: Indi beýleki ulanyjy bilen giriň, ýagny “tecmint2” başga terminala giriň we bukjany “/ tecmint1” -e üýtgediň. Indi “ls” buýrugyny ulanyp mazmuny görmäge synanyşyň, soňra bukjany üýtgetmäge we aşakdaky ýaly tapawudy görmäge synanyşyň.
[[email ~]$ su - tecmint2 Last login: Thu Apr 17 15:03:31 IST 2014 on pts/5
[[email ~]$ cd /tecmint1/ [[email tecmint1]$ ls -lR example/ example/: total 0
[[email tecmint1]$ cd example/ -bash: cd: example/: Permission denied
[[email tecmint1]$ getfacl example/ # file: example # owner: tecmint1 # group: tecmint1 user::rwx user:tecmint1:rwx user:tecmint2:r-- group::rwx mask::rwx other::---
7-nji ädim: Indi mysal bukjasyndaky tecmint2 -e ýerine ýetirmäge rugsat beriň we täsirini görmek üçin cd buýrugyny ulanyň. Indi “tecmint2” -iň katalogy görmäge we üýtgetmäge rugsatlary bar, ýöne hiç zat ýazmaga rugsat ýok.
[[email tecmint1]$ setfacl -m u:tecmint2:r-x example/ [[email tecmint1]$ getfacl example/ # file: example # owner: tecmint1 # group: tecmint1 user::rwx user:tecmint1:rwx user:tecmint2:r-x group::rwx mask::rwx other::---
[[email ~]$ su - tecmint2 Last login: Thu Apr 17 15:09:49 IST 2014 on pts/5
[[email ~]$ cd /tecmint1/ [[email tecmint1]$ cd example/ [[email example]$ getfacl .
[[email example]$ mkdir test mkdir: cannot create directory ‘test’: Permission denied
[[email example]$ touch test touch: cannot touch ‘test’: Permission denied
Bellik: ACL-i durmuşa geçireniňizden soň, aşakdaky ýaly ls –l çykyşy üçin goşmaça + belligini görersiňiz.
ll total 4 drwxrwx---+ 2 tecmint1 tecmint1 4096 Apr 17 17:01 example
Salgylanma baglanyşyklary
ACL-iň resminamalary