11 votos

Puedo conseguir samba para establecer los permisos adecuados en directorios creados

Tengo un servidor ubuntu compartir algunas carpetas con samba. Cuando un cliente crea un nuevo archivo o carpeta, los permisos no se establece de acuerdo a la configuración de smb.conf.

Mi actual configuración de un determinado recurso compartido:

[share]
    path = /mnt/share
    browsable = yes
    guest ok = no
    writable = yes
    read only = no
    create mask = 0774
    directory mask = 0774
    write list = netuser

Cuando un cliente samba (windows 7 cuadro) utiliza el 'netuser' cuenta para crear un archivo o directorio, los permisos se convierten en

drwxr-sr-- 2 netuser sambashare      4096 2012-01-22 21:14 New folder
-rwxrw-r-- 1 netuser sambashare         0 2012-01-22 21:07 New Text Document.txt

El directorio principal tiene el set group id flag, por lo tanto el sambashare propietario del grupo. La idea es que tanto los usuarios samba y servidor de los usuarios pertenecen a la sambashare grupo, y por lo tanto son para ser capaz de editar, eliminar y crear archivos y directorios. Sin embargo, desde que se crearon las carpetas no tiene la escritura de la flag de grupo, los usuarios del servidor puedo crear nuevos archivos o carpetas en las carpetas sin sudo.

he probado añadiendo y quitando la máscara de directorio, la fuerza directorio modo, directorio modo de seguridad, y la fuerza de directorio modo de seguridad, pero el comportamiento sigue siendo. Recién creado los archivos y carpetas no consigue la intención de 774 permiso, sino 764 y 754, respectivamente.

Lo que me estoy perdiendo? ¿Por qué no samba establecer los permisos correctos?

16voto

bodhi.zazen Puntos47591

Creo que usted necesita para utilizar los siguientes parámetros:

# I changes the permissions to rw-rw-r--
# You should be able to change them to 775 if you need the files to
# be executable
create mask = 664
force create mode = 664
security mask = 664
force security mode = 664

# I set the SGID flag here as I thought this is what you wanted
# You could change to 0775
directory mask = 2775
force directory mode = 2775
directory security mask = 2775
force directory security mode = 2775

Yo estaba buscando una buena explicación de cómo estas opciones de trabajo, pero no podía encontrar nada mejor que el hombre smb.conf

Usted tendrá que desplazarse hacia abajo un poco para esas opciones.

Básicamente, en pocas palabras, los permisos de windows no son los mismos como unix (linux) y es un poco extraño cómo samba mapas de permisos.

6voto

Andrius K Puntos21

Después de un montón de prueba y error, este es el código correcto para compartir samba dir utilizando SGID y grupos unix. Si el usuario se conecta de forma anónima que pone r/o, si inicia sesión y es un miembro del grupo asignado que pone r/w.

Tengo grupo denominado 'admin' establecer como principal grupo de usuarios con privilegios de escritura, todos los demás se ponen de sólo lectura de derechos.

Yo se fuerza al usuario a nadie, por lo que diferentes personas que trabajan en los mismos archivos que no interfieran el uno con el otro.

Me puse chmod 2755 en el directorio compartido, por lo que hereda crea directorios con el mismo grupo de 'admin'

$ chmod -R 2755 /home/shares/test

Comprobar si todo está bien:

$ stat /home/shares/test
Access: (2755/drwxr-sr-x)  Uid: (65534/  nobody)   Gid: ( 1001/   admin)

Parte correspondiente de /etc/samba/smb.conf:

[test]
        comment = test
        path = /home/shares/test
        force user = nobody
        read only = No
        create mask = 0664
        force create mode = 0664
        directory mask = 02775
        force directory mode = 02775

Este post me puso sobre la pista de la derecha, pero testparm reveló 4 incorrecta de las directivas, así que voy a compartir fijo config aquí. En el samba, la menor de las directivas de especificar mejor funciona.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

;