¿Cómo forzo permisos específicos para nuevos archivos / carpetas en el servidor de archivos Linux?

14

Tengo un problema con mi instalación de Ubuntu 9.10 (servidor de archivos) y sus permisos de samba. Iniciar sesión y leer funciona bien. Sin embargo, la creación de nuevos directorios por parte de los usuarios restringe el acceso de otros usuarios. Por ejemplo, si Bob (usuario de Windows que asigna el disco) crea una carpeta en el directorio, Jane (usuario de Mac que simplemente monta smb) puede leer de él, pero no puede escribir en él, y viceversa. Entonces debo ir a CHMOD 777 el directorio para que todos sean felices. He intentado editar las opciones "crear / máscara de directorio" y "forzar" en el archivo smb.conf, pero esto no parece ayudar.

Estoy a punto de recurrir a CRONTABing una rutina chmod recursiva, aunque estoy seguro de que esta no es la solución. ¿Cómo consigo que todos los artículos nuevos sean siempre 777? ¿Alguien tiene alguna sugerencia para solucionar esta situación cada vez mayor?

Mejor

humilde_coder
fuente
Grupos de usuarios y otros permisos nativos, no chmod 777.
Warner

Respuestas:

13

Normalmente uso la funcionalidad nativa de SAMBA para permisos y gestión de grupos en recursos compartidos. Por ejemplo..

force user=user1
force group=sharedgroup
create mask=775

Debería especificar esta configuración en el recurso compartido. Asegúrese de volver a cargar SAMBA después del cambio de configuración, lo que podría hacerse a través del script de inicio.

Warner
fuente
1
Sin embargo, el mensaje dice que lo hizo y no funcionó ....
Mistiry
2
Luego lo hizo mal. Funciona.
Warner
No estoy seguro de qué pasa. Lo he intentado manualmente y a través de Webmin en vano. ¿Quizás mi elección grupal de grupo es incorrecta? He intentado usar "usuarios", así como varios grupos creados manualmente, de los cuales todos se han hecho miembros. Independientemente de lo que haga, los usuarios no pueden manipular nada que no hayan colocado ellos mismos. La única "solución" es hacer que todos los usuarios inicien sesión (o monten) como INVITADOS, lo que produce confusión.
humble_coder
SAMBA utiliza una combinación de permisos y configuraciones del sistema de archivos dentro de la configuración. Si los usuarios no tienen write listpermiso para escribir en la configuración de uso compartido, no funcionará. Si el usuario en el que se ejecuta SAMBA no puede acceder a los directorios, no funcionará. Los usuarios deben ser miembros del grupo apropiado, los directorios y archivos deben ser propiedad de ese grupo y tener el bit de escritura establecido para el grupo. También puede consultar los registros de SAMBA.
Warner
2
¡He estado buscando mucho tiempo para esto! ¡Gracias! :) Está funcionando como se esperaba.
NagyI
2

Establezca los permisos en el directorio para que sean 2777, así:

chmod 2777 /shared/dir

Esto hace que todos los archivos y carpetas en el directorio '/ shared / dir' hereden los permisos del directorio superior, en este caso 777.

Luego, haga esto para asegurarse de que todos los archivos tengan los permisos adecuados:

chmod -R 777 /shared/dir
Mistiry
fuente
La única situación en la que se puede escribir públicamente es aceptable /tmp.
Warner
1
Sí, probablemente sea mejor usar 774 o incluso 770, dependiendo de la situación. Pero, él preguntó cómo hacerlos todos '777', así que lo usé en mi ejemplo.
Mistiry
3
Sí, pero ¿cómo me aseguro de que todos los archivos futuros copiados en ese directorio a través de la red reciban los mismos permisos, independientemente de sus permisos iniciales? No tengo problemas al hacerlo manualmente, simplemente lo quiero automatizado.
humble_coder
2
Esto no funciona. El indicador setgid para carpetas establece el grupo de nuevos archivos y carpetas, no permisos, y ejecutar chmod todo el tiempo no es aceptable. Necesito una solución que no esté relacionada con samba, para Steam en Linux para poder compartir la biblioteca entre los usuarios.
Sam Watkins
2

Me doy cuenta de que esta es una vieja pregunta, pero recientemente tuve un problema similar y así es como lo resolví:

[compartir]
máscara de seguridad = 0770
crear máscara = 0770
forzar crear modo = 0660
comentario = Samba compartir para TI
ruta = / incursión / compartir
navegable = SÍ
invitado ok = no
escribir lista = raíz, @ "DOMINIO + it_nfs"
grupo de fuerza = DOMINIO + it_nfs

Esto garantiza que los usuarios tengan que estar en el grupo de seguridad "it_nfs" en AD, todos los archivos se escribirán con el grupo "it_nfs" y todos los archivos se escribirán con al menos 0660 y como máximo 0770 permisos. Forzar la ID de grupo asegura que cualquier persona en ese grupo pueda leer / escribir los archivos en el recurso compartido. De lo contrario, terminará en situaciones en las que un archivo escrito como bob: bob no puede ser escrito por charlie: charlie, aunque ambos estén en "it_nfs".

Evan
fuente
0

De los comentarios de la respuesta aceptada, en realidad no resolvió el problema de OP, y tampoco lo hicieron las otras respuestas, si OP tuvo el mismo problema que yo:

Tener el recurso compartido en una partición NTFS / FAT.

Recuerde esto cuando conecte su disco de escritorio a un NAS para compartir sus álbumes familiares: fs monte parámetros para usuarios, grupos, modos de creación, etc. ¡ anule lo que esté configurado para Samba! ;)

(Por ejemplo, en mi caso, independientemente de smb.conftodo lo creado por root, con 777- según el fstab defaultspara el montaje de fusible NTFS ...)

Sz.
fuente