Nota:

Uso y activación de ACL en Oracle Linux

Introducción

Las listas de control de acceso (ACL) proporcionan control de acceso a los directorios y archivos. Las ACL pueden definir permisos de lectura, escritura y ejecución para el propietario, el grupo y todos los demás usuarios del sistema.

Una ACL consta de un juego de reglas que especifican cómo un usuario o grupo específico puede acceder a los archivos y directorios activados para ACL. Una entrada de ACL normal especifica la información de acceso para un único archivo o directorio. Una entrada de ACL por defecto se define sólo en directorios y especifica la información de acceso por defecto para cualquier archivo del directorio que no tenga una ACL de acceso.

Al definir una ACL por defecto en un directorio, sus subdirectorios heredan los mismos derechos automáticamente. Las ACL se pueden utilizar con los sistemas de archivos btrfs, ext3, ext4, OCFS2 y XFS, así como los sistemas de archivos NFS montados.

Objetivos

Requisitos

Un sistema con un disco disponible y una instalación con parches completos de Oracle Linux.

Configuración del entorno del laboratorio

Nota: Al utilizar el entorno de prácticas gratuitas, consulte Aspectos básicos de las prácticas de Oracle Linux para obtener información sobre la conexión y otras instrucciones de uso.

  1. Si aún no está conectado, abra un terminal y conéctese mediante ssh a la instancia ol-node01.

    ssh oracle@<ip_address_of_instance>
    
  2. Verifique que los volúmenes en bloque existen.

    sudo lsblk -f
    

    La salida del entorno de prácticas libres muestra dos dispositivos de bloques: sda, que contiene el sistema operativo base, y sdb, que utiliza este laboratorio. El uso de la opción -f muestra el tipo de sistema de archivos (FSTYPE) y el identificador único universal de bloques (UUID).

Montaje del sistema de archivos con compatibilidad con ACL

  1. Cree un directorio de punto de montaje.

    sudo mkdir /test
    
  2. Verifique que exista compatibilidad con ACL.

    Los sistemas de archivos de Oracle Linux, como ext4, btrfs y xfs, activan la opción de montaje acl como valor predeterminado. En un sistema de archivos ext4 como /dev/sdb1, verifique esto con tune2fs.

    sudo tune2fs -l /dev/sdb1 | grep -i acl
    

    Resultado de ejemplo:

    [oracle@ol-node01 ~]$ sudo tune2fs -l /dev/sdb1 | grep -i acl
    Default mount options:    user_xattr acl
    
  3. Monte el disco con compatibilidad con ACL.

    Si el sistema de archivos no tiene la opción de montaje acl activada de manera predeterminada, transfiera -o acl al utilizar el comando mount. Dado que /dev/sdb1 utiliza ext4, esta opción ya está activada por defecto.

    sudo mount -t ext4 /dev/sdb1 /test
    

    Para que este punto de montaje sea persistente tras los reinicios, agréguelo al archivo fstab.

    MYUUID=$(sudo blkid | grep UUID= | grep sdb1 | awk '{ print $2 }')
    echo "$MYUUID /test ext4 defaults 0 0" | sudo tee -a /etc/fstab > /dev/null
    
  4. Verifique que existe el montaje del sistema de archivos.

    df -T | grep sdb1
    

    La salida muestra que el sistema de archivos ext4 /dev/sdb1 existe en el punto de montaje /test.

Usar funcionalidad de ACL

  1. Intente crear un archivo en el nuevo punto de montaje.

    touch /test/file1
    

    Resultado de ejemplo:

    touch: cannot touch '/test/file1': Permission denied
    

    El comando falla porque el usuario oracle no tiene permiso para crear archivos en el directorio /test.

  2. Obtener la información de ACL del directorio.

    sudo getfacl /test
    

    Resultado de ejemplo:

    [oracle@ol-node01 ~]$ sudo getfacl /test
    getfacl: Removing leading '/' from absolute path names
    # file: test
    # owner: root
    # group: root
    user::rwx
    group::r-x
    other::r-x
    
  3. Agregue una regla de ACL al directorio.

    sudo setfacl -m u:oracle:rwx /test
    

    La regla otorga permisos read, write y execute al usuario oracle.

  4. Compruebe la información de ACL actualizada del directorio.

    sudo getfacl /test
    

    Resultado de ejemplo:

    getfacl: Removing leading '/' from absolute path names
    # file: test
    # owner: root
    # group: root
    user::rwx
    user:oracle:rwx
    group::r-x
    mask::rwx
    other::r-x
    

    La salida muestra la línea user:oracle:rwx recién agregada.

  5. Mostrar el formato de lista largo de sólo el directorio.

    ls -ld /test
    

    Resultado de ejemplo:

    drwxrwxr-x+ 3 root root 4096 Jul 13 20:48 /test
    

    Los permisos que se muestran en la salida incluyen un signo más (+) que indica la inclusión de una ACL.

  6. Intente crear el archivo de nuevo.

    touch /test/file1
    

    El comando se debe ejecutar correctamente esta vez.

  7. Confirme la creación del archivo.

    ls -l /test
    

Consulte las páginas man getfacl o man setfacl para obtener más opciones y ejemplos.

Para obtener más información

Ver otros recursos relacionados:

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer y conviértase en Oracle Learning Explorer.

Para obtener documentación sobre el producto, visite Oracle Help Center.