Sikura Fajls/Direttorji bl-użu ta 'ACLs (Listi ta' Kontroll ta 'Aċċess) fil-Linux
Bħala Amministratur tas-Sistema, l-ewwel prijorità tagħna se tkun li nipproteġu u niżguraw data minn aċċess mhux awtorizzat. Aħna lkoll konxji tal-permessi li nissettjaw bl-użu ta' xi kmandi utli tal-Linux bħal chmod, chown, chgrp... eċċ. Madankollu, dawn is-settijiet ta' permessi default għandhom xi limitazzjoni u xi kultant jistgħu ma jaħdmux skont il-bżonnijiet tagħna. Pereżempju, ma nistgħux inwaqqfu settijiet ta' permessi differenti għal utenti differenti fuq l-istess direttorju jew fajl. Għalhekk, ġew implimentati Listi ta' Kontroll ta' Aċċess (ACLs).
Ejja ngħidu, għandek tliet utenti, 'tecmint1', 'tecmint2' u 'tecmint3'. Kull wieħed li jkollu grupp komuni jgħid ‘acl’. L-utent 'tecmint1' irid li l-utent 'tecmint2' biss jista' jaqra u jaċċessa fajls li huma proprjetà ta' 'tecmint1' u ħadd ieħor m'għandu jkollu aċċess għal dan.
L-ACLs (Listi tal-Kontroll tal-Aċċess) jippermettulna nagħmlu l-istess trick. Dawn l-ACLs jippermettulna li nagħtu permessi għal utent, grupp u kwalunkwe grupp ta' kwalunkwe utenti li mhumiex fil-lista tal-gruppi ta' utent.
Nota: Skont id-Dokumentazzjoni tal-Prodott Redhat, tipprovdi appoġġ ACL għal sistema ta 'fajls ext3 u sistemi ta' fajls esportati NFS.
Kif Tiċċekkja l-Appoġġ ACL fis-Sistemi Linux
Qabel ma timxi 'l quddiem għandu jkollok appoġġ għal ACLs fuq Kernel attwali u sistemi ta' fajls immuntati.
Mexxi l-kmand li ġej biex tiċċekkja l-Appoġġ ACL għas-sistema tal-fajls u l-għażla POSIX_ACL=Y (jekk ikun hemm N minflok Y, allura dan ifisser li Kernel ma jappoġġjax ACL u jeħtieġ li jiġi kkompilat mill-ġdid).
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
Qabel ma tibda tilgħab bl-ACLs kun żgur li għandek installati l-pakketti meħtieġa. Hawn taħt huma l-pakketti meħtieġa li jeħtieġ li jiġu installati bl-użu ta 'yum jew apt-get.
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)
Iżda fil-każ tagħna ma jurix l-acl awtomatikament. Allura, li jmiss għandna l-għażla li terġa 'timmonta l-partizzjoni immuntata mill-ġdid billi tuża l-għażla acl. Iżda, qabel ma nimxu 'l quddiem, għandna għażla oħra biex niżguraw li l-partizzjoni tkun immuntata b'għażla acl jew le, minħabba li għal sistema reċenti tista' tkun integrata b'għażla ta 'immuntar default.
tune2fs -l /dev/mapper/fedora-root | grep acl Default mount options: user_xattr acl
Fl-output ta 'hawn fuq, tista' tara li l-għażla ta 'muntatura awtomatika diġà għandha appoġġ għal acl. Għażla oħra hija li terġa 'tirmonta l-partizzjoni kif muri hawn taħt.
mount -o remount,acl /
Sussegwentement, żid l-entrata ta 'hawn taħt fil-fajl '/etc/fstab' biex tagħmilha permanenti.
/dev/mapper/fedora-root / ext4 defaults,acl 1 1
Għal darb'oħra, erġa' munta l-partizzjoni.
mount -o remount /
Fuq is-server NFS, jekk is-sistema tal-fajls li hija esportata mis-server NSF tappoġġja l-ACL u l-ACLs jistgħu jinqraw mill-Klijenti NFS, allura l-ACLs jiġu utilizzati mis-Sistema tal-klijent.
Biex tiddiżattiva l-ACLs fuq is-sehem NFS, għandek iżżid l-għażla \no_acl fil-fajl '/etc/exportfs' fuq NFS Server. Biex tiddiżattivaha fuq in-naħa tal-klijent NSF erġa uża l-għażla \no_acl waqt il-ħin tal-muntaġġ.
Kif timplimenta l-Appoġġ ACL fis-Sistemi Linux
Hemm żewġ tipi ta 'ACLs:
- ACLs ta' aċċess: ACLs ta' aċċess jintużaw għall-għoti ta' permessi fuq kwalunkwe fajl jew direttorju.
- ACLs default: ACLs default jintużaw għall-għoti/l-issettjar ta' lista ta' kontroll ta' aċċess fuq direttorju speċifiku biss.
Differenza bejn ACL Aċċess u ACL Default:
- ACL default jista' jintuża fuq livell ta' direttorju biss.
- Kull subdirettorju jew fajl maħluq f'dak id-direttorju se jiret l-ACLs mid-direttorju prinċipali tiegħu. Min-naħa l-oħra fajl jiret l-ACLs default bħala ACLs ta' aċċess tiegħu.
- Aħna nużaw \–d” biex nissettjaw ACLs default u ACLs default huma fakultattivi.
Biex tiddetermina l-ACLs default għal fajl jew direttorju speċifiku, uża l-kmand 'getfacl'. Fl-eżempju hawn taħt, il-getfacl jintuża biex tikseb l-ACLs default għal folder Mużika.
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-
Biex tissettja l-ACLs default għal fajl jew direttorju speċifiku, uża l-kmand 'setfacl'. Fl-eżempju hawn taħt, il-kmand setfacl se jistabbilixxi ACLs ġodda (aqra u tesegwixxi) fuq folder 'Mużika'.
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
Uża l-kmand 'setfacl' biex tissettja jew timmodifika fuq kwalunkwe fajl jew direttorju. Pereżempju, biex tagħti permessi ta' qari u tikteb lill-utent 'tecmint1'.
# setfacl -m u:tecmint1:rw /tecmint1/example
Uża l-kmand getfacl biex tara ACL fuq kwalunkwe fajl jew direttorju. Pereżempju, biex tara ACL fuq '/tecmint1/example' uża l-kmand hawn taħt.
# getfacl /tecmint1/example # file: tecmint1/example/ # owner: tecmint1 # group: tecmint1 user::rwx user:tecmint1:rwx user:tecmint2:r-- group::rwx mask::rwx other::---
Għat-tneħħija ta 'ACL minn kwalunkwe fajl/direttorju, nużaw għażliet x u b kif muri hawn taħt.
# setfacl -x ACL file/directory # remove only specified ACL from file/directory. # setfacl -b file/directory #removing all ACL from file/direcoty
Ejja nimplimentaw l-ACL fuq ix-xenarji li ġejjin.
Żewġ Utenti (tecmint1 u tecmint2), it-tnejn li huma għandhom grupp sekondarju komuni msejjaħ 'acl'. Aħna se noħolqu direttorju wieħed proprjetà ta' 'tecmint1' u ser nipprovdu l-permess ta' qari u eżekuzzjoni fuq dak id-direttorju lill-utent 'tecmint2'.
Pass 1: Oħloq żewġ utenti u neħħi l-password mit-tnejn
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
Pass 2: Oħloq Grupp u Utenti għal Grupp Sekondarju.
groupadd acl usermod -G acl tecmint1 usermod -G acl tecmint2
Pass 3: Oħloq Direttorju /tecmint u ibdel is-sjieda għal tecmint1.
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
Pass 4: Idħol ma 'tecmint1 u oħloq Direttorju fil-folder /tecmint.
[[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
Pass 5: Issa ssettja ACL billi tuża 'setfacl', sabiex 'tecmint1' ikollu l-permessi rwx kollha, 'tecmint2' ikollu biss permess ta 'qari fuq il-folder 'eżempju' u oħrajn ma jkollhomx permessi.
$ 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::---
Pass 6: Issa illoggja ma 'utent ieħor jiġifieri 'tecmint2' fuq terminal ieħor u ibdel id-direttorju għal '/tecmint1'. Issa ipprova ara l-kontenut billi tuża l-kmand 'ls' u mbagħad ipprova tbiddel id-direttorju u ara d-differenza kif hawn taħt.
[[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::---
Pass 7: Issa agħti l-permess 'eżekuta' lil 'tecmint2' fuq il-folder 'eżempju' u mbagħad uża l-kmand 'cd' biex tara l-effett. Issa 'tecmint2' għandhom il-permessi biex jaraw u jibdlu d-direttorju, iżda m'għandhomx permessi biex tikteb xejn.
[[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
Nota: Wara li timplimenta ACL, tara sinjal '+' addizzjonali għall-output 'ls -l' kif hawn taħt.
ll total 4 drwxrwx---+ 2 tecmint1 tecmint1 4096 Apr 17 17:01 example
Links ta' Referenza
Dokumentazzjoni tal-ACL