divendres, 27 de setembre de 2013

ACLs in Linux

Linux com a sistema compatible amb POSIX permet diferents esquemes per a gestionar la politica accesos als fitxers del disc. Generalment s'utlitza el sistema de permisos d'accés però també es poden utilitzar ACL. En aquest tutorial aprendrem a utilitzar les ACLs (Access Control Lists).

Comprobar que les ACLs estan activat:

Per a poder utilitzar aquestes comandes necessitem que en el fitxer /etc/fstab estiga configurada l'opció acl. Ho comprovem visualitzant el contingut del fitxer.
#
# /etc/fstab
/dev/mapper/sysvg-root  /               ext4    defaults        1 1
/dev/sda1               /boot           ext4    defaults        1 2
/dev/mapper/sysvg-data  /data           ext4    defaults        1 2
/dev/mapper/sysvg-usr   /usr            ext4    defaults        1 2
/dev/mapper/sysvg-var   /var            ext4    defaults        1 2
/dev/mapper/sysvg-swap  swap            swap    defaults        0 0
tmpfs                   /dev/shm        tmpfs   defaults        0 0
devpts                  /dev/pts        devpts  gid=5,mode=620  0 0
sysfs                   /sys            sysfs   defaults        0 0
proc                    /proc           proc    defaults        0 0
O executant la comanda mount:
[root@home log]# mount
/dev/mapper/sysvg-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/sysvg-data on /data type ext4 (rw)
/dev/mapper/sysvg-usr on /usr type ext4 (rw)
/dev/mapper/sysvg-var on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
Tot i que la opció acl no està especificament declarada pot estar habilitada per defecte per a estar 100% segurs podem utilitzar la següent comanda
[root@home log]# tune2fs -l /dev/mapper/sysvg-var | grep acl
Default mount options:    user_xattr acl
Per tant es podem utilitzar les comandes getfacl i setfacl sobre les particions que presenten aquest atribut al executar la comanda anterior.

Utilització d'ACL:

Per a gestionar les ACLs (Access Control Lists) disposen de dues comandes:
  • setfacl - Set file access control list.
  • getfacl - Get file access control list.
Un fitxer al que mai li hem aplicat un acl, si executem la comanda getfacl sobre ell, presenta el següent aspecte:
[root@home log]# getfacl maillog
# file: maillog
# owner: root
# group: root
user::rw-
group::---
other::---
Amb l'utilitat setfacl podem concedir access a un usuari sobre un fixer especific. Per concedir accés de lectura només al usuari user1 al fixer /var/log/maillog executariem la següent comanda:
[root@home log]# setfacl -m u:user1:r  /var/log/maillog
Com es pot veure ara apareix un signe + si realitzem un ls que indica que s'ha afegit nous atributs al fitxer.
[root@home log]# ls -la /var/log/maillog
-rw-r-----+ 1 root root  3665 Sep  6 04:30 /var/log/maillog
Si tornem a executar la comanda getfacl per visualitzar de nou els atributs veurem que s'ha afegir l'usuari user1.
[root@home log]# getfacl /var/log/maillog
getfacl: Removing leading '/' from absolute path names
# file: var/log/maillog
# owner: root
# group: root
user::rw-
user:user1:r--
group::---
mask::r--
other::---

Rotació de logs amb ACL:

Per a evitar que quan es produeixca la rotació de logs es canvien els permisos del log haurem de modificar la configuració del log en questió. En el nostre cas el log es /etc/logrotate.d/maillog. La configuració quedaria com segueix:
 
/var/log/maillog
{
    sharedscripts
    copytruncate
    compress
    postrotate
        /usr/bin/setfacl -m u:user1:r  /var/log/maillog*
    endscript
}
Una volta configurat forcem la rotació per a assegurar-nos que funciona.
 logrotate -f maillog

Enllaços:

http://www.ghacks.net/2010/01/28/further-control-of-linux-files-with-acl/ http://serverfault.com/questions/258827/what-is-the-most-secure-way-to-allow-a-user-read-access-to-a-log-file http://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/

Cap comentari:

Publica un comentari a l'entrada