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:

  1. ACLs ta' aċċess: ACLs ta' aċċess jintużaw għall-għoti ta' permessi fuq kwalunkwe fajl jew direttorju.
  2. 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:

  1. ACL default jista' jintuża fuq livell ta' direttorju biss.
  2. 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.
  3. 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