Compartiendo con SAMBA, segunda parte, permisos ACL

linux-logo-new-tux-crystalizedGeneralmente en la mayoría de artículos, tutoriales y guías que encontramos por Internet, se quedan en la mera compartición pública de los recursos con SAMBA. Hoy hablaremos de los permisos ACL y de como usarlos en SAMBA. Con ellos podremos otorgar permisos de escritura y denegarlos, incluidos los de lectura y los de ejecución. Y al final veremos como ocultar carpetas sin tener que usar la ocultación con dot o punto.

Las listas de control de acceso o ACL, para quien nos las conozca, se usan en la seguridad informática para modificar los provilegios de usuarios y grupos sobre un elemento, ya sea fichero o carpeta. Más información aquí.

Usaremos la misma máquina, carpetas y usuarios que utilizamos en el artículo anterior.

Instalaremos las ACL en Debian con el siguiente comando:

1
apt-get -y install acl

Que nos daría un resultado similar al siguiente:

acl-en-samba-1En Red Hat y derivados vienen por defecto con el sistema.

He añadido más carpetas, para así poder jugar con los permisos ACL:

acl-en-samba-2Para mostrar el arbol de carpetas he usado el comando tree, que no viene por defecto pero lo podéis instalar con apt-get o yum.

Si accedemos con el user1, desde un ordenador con Windows 7 veremos la siguientes carpetas en Contabilidad:

acl-en-samba-3Comencemos. Primero de toda. Otorgaremos todos los derechos a nuestros usuarios y a nuestro grupo, y el resto los denegaremos, para las carpetas Contabilidad y Personal. Usaremos los comandos:

  • getfacl, que nos dará información de permisos ACL de ficheros y carpetas
  • setfacl, que los usararemos para modificar dichos permisos.

Si usamos getfacl con ambas carpetas:

acl-en-samba-4La sintaxis es, primera columna para el tipo de objecto (user, group, other), segunda columna para el objeto, si está vacía es para todos, y la última columna para los permisos, “r” lectura, “w” escritura y “x” ejecución.

Daremos todos los permisos a nuestro usuarios y grupo:

1
2
3
4
setfacl -Rm u::---,u:user1:rwx,u:user2:rwx,u:user3:rwx /mnt/Contabilidad
serfacl -Rm g::---,g:userbits:rwx /mnt/Contabilidad
setfacl -Rm u::---,u:user1:rwx,u:user2:rwx,u:user3:rwx /mnt/Personal
setfacl -Rm g::---,g:userbits:rwx /mnt/Recursos

Explicamos un poco, primero los parámetros:

  • -R , decimos que los permisos son recursivos, es decir, se aplicarán a todos los ficheros y directorios que haya por debajo de la carpeta.
  • -m, sirve para indicar que vamos a modificar permisos.

Más adelante decimos que los usuarios por defecto no tienen ningún permiso (u::—) y añadimos los permisos a nuestros usuarios (u:user1:rwx…..) Lo mismo con los grupos.

Ahora viene lo divertido. A los usuarios user2 y user3 les denegaremos acceso a las subcarpetas dentro de Contabilidad, CRM, Facturas y Proveedores

1
2
3
setfacl -Rm u:user2:---,u:user3:--- /mnt/Contabilidad/CRM
setfacl -Rm u:user2:---,u:user3:--- /mnt/Contabilidad/Facturas
setfacl -Rm u:user2:---,u:user3:--- /mnt/Contabilidad/Proveedores

Cada vez que hagamos un cambio recordad reiniciar SAMBA.

Si intentan entrar les dará el siguiente error:

acl-en-samba-5Es verdad, resulta un poco chocante a veces que no puedas acceder a ciertos recursos que sabes que existen. Eso tiene fácil arreglo, vamos hacer que los usuarios no vean los recursos que no pueden leer o escribir o ambas cosas.

Usaremos la configuración de SAMBA en el archivo smb.conf. Añadiendo los parámetros en [Contabilidad] :

  • hide unreadable = Yes # Todo lo que no sea leíble por el usuario se oculta.
  • hide unwriteable files = Yes # Todo lo que no se puede escribir por el usuario se oculta.
  • access based share enum = Yes

Una vez añadido reiniciamos el servicio SAMBA.

Si todo ha ido bien los usarios ya no verán las carpetas:

acl-en-samba-6Espero que os haya sido igual de interesante que a mi.

Como sé que es un asunto algo denso no dudéis en preguntar.

You wellcome! Hasta la próxima!

 

You may also like...

13 Responses

  1. Antonio De Jesus Vargas Rios dice:

    oohh muy buen tip sobre como manejar las ACLs, felicidades y gracias por compartir.

  2. David dice:

    Hola Antonio,

    Antes de nada gracias por visitar la página.

    Cómo respuesta a tu pregunta, imaginemos que tenemos un grupo de usuarios, digamos de toda nuestra empresa, que son unos 60 trabajadores, por poner un ejemplo. Tenemos una carpeta que se llama EMPRESA, y allí dentro tendremos las carpetas que queremos compartir por departamento. El grupo de usuario es “empresa”, con un administrador que llamaremos “adminempresa”

    Bien, primero de todo, en la consola o shell, asignaremos los permisos de propietario al usuario y al grupo con:

    chown adminempresa:empresa CARPETAEMPRESA -R

    Lo siguiente es asignar los permisos:

    chmod 775 CARPETAEMPRESA -R

    En smb.conf, en dicho recurso la configuración tendría que ser parecida a esta:

    [CARPETAEMPRESA]
    comment = Carpeta de la Empresa
    path = /mnt/CARPETAEMPRESA
    valid users = @empresa
    write list = @empresa
    admin users = adminempresa
    hide unreadable = Yes
    hide unwriteable files = Yes
    access based share enum = Yes

    Creo que no me he dejado, nada, ahora sólo reiniciamos samba.

    Pues bien, una vez hecho esto, que se hace sólo una vez. Ya puedes empezar a jugar con las listas ACL, y no tener que tocar más el archivo smb.conf, a no ser que necesites compartir otras carpetas.

    Espero que te haya sido de ayuda.

  3. Raul Baca dice:

    Hola David,

    Mira primero agradecerte por tan amable blog y el tiempo que le dedicas me parece excelente 😀
    tengo una consulta veo que se configuro samba como controlador de dominio, dime que mas se podria hacer con dicho DC. por lo que veo tendria que unirme al dominio, quedo atento a tus comentarios.

    • davidochobits dice:

      Hola Raúl. El servidor lo tengo configurado como controlador de dominio con muy pocas funciones. Las básicas para que funcione el servidor SAMBA. Quizás en un artículo posterior ampliaremos conocimientos al respecto de LDAP y SAMBA. Para utilizar el servidor SAMBA sólo tienes que tener un usuario y su contraseña.

  4. Juanito dice:

    Te felicito
    todo bien excepto que no aparece en w7 la ventan del usuatio y contraseña
    saludos
    Juanito

    • davidochobits dice:

      Hola Juanito,

      Gracias por visitar la web, si te ha parecido interesante podrías pinchar en alguno de los anuncios de la web, de ésta manera me ayudarías a sufragar su coste.

      Respecto al tema del usuario y la contraseña revisa los pasos del tutorial. Yo lo probé con un cliente Windows 7 y me funcionó correctamente.

      Saludos

  5. Juanito dice:

    Duisculpa no haya reconocido mi error , todo por falta de tiempo, tu tienes razón

  6. Jorge dice:

    Hola,

    Un buen blog post, Gracias.

    No e podido que la carpeta sea invisible.

    Mi configuracion es la siguiente:

    smb.conf:
    [OBX-Backup]
    path = /home/Backup
    hide unreadable = yes
    hide unwriteable files = yes
    access based share enum = yes

    getfacl SIPC:
    # file: SIPC
    # owner: DLeno
    # group: users
    user::rwx
    user:John.Doe:—
    group::rwx
    mask::rwx
    other::rwx

    permisos de la carpeta:
    drwxrwxrwx+ 2 DLeno users 4096 Jul 22 13:21 SIPC

    Le doy restart a samba, monto el network drive como usuario John.Doe pero todavia me aparece “Access Denied” y no invisible, que estoy haciendo mal? Gracias..

  7. sebastian dice:

    hola amigo necesito ayuda cree una carpeta comprtida para windows ESTUDIANTES y DOCENTES dentro de estudiantes esta juan y pedro bn y de docentes alejando y sebastian bn los de docentes no pueden ver lo de estudiantes y estudiantes no pueden ver lo de docentes hasta hay bn.
    mi problema es que dentro de ESTUDIANTES la carpeta que crea juan y sus archivos personales pedro los puede ver y manipulas como pudeo hacer que entre su mismo grupo no se vean sus carpetas personales

  1. 15 septiembre, 2015

    […] Compartiendo con SAMBA, segunda parte, permisos ACL […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR