usuario una todos tabla qué propietario permite permisos los especifico dar comando carpeta cambiar archivos archivo linux chmod samba

una - tabla de permisos linux



preservando los permisos de archivos para samba comparte cuando se edita el archivo (1)

Finalmente pudo descubrir por qué el permiso estaba cambiando. La confusión surgió de la configuración map archive = yes que es el valor predeterminado en Samba. Después de establecer map archive = no , el bit de ejecución del propietario comenzó a comportarse como esperaba que se comportara.

Encontré la respuesta leyendo la documentación aquí: samba.org/samba/docs/using_samba/ch08.html en Permisos y atributos de archivos en las secciones de MS-DOS y Unix . Menciona claramente este efecto secundario:

En consecuencia, no hay uso para ninguno de los tres bits ejecutables de Unix que están presentes en un archivo en un recurso compartido de disco de Samba. Sin embargo, los archivos DOS tienen sus propios atributos que deben preservarse cuando se almacenan en un entorno Unix: el archivo, el sistema y los bits ocultos. Samba puede conservar estos bits reutilizando los bits de permisos ejecutables del archivo en el lado de Unix, si así se le indica. La asignación de estos bits, sin embargo, tiene un desafortunado efecto secundario: si un usuario de Windows almacena un archivo en un recurso compartido de Samba, y lo ve en Unix con el ls -al , algunos de los bits ejecutables no significarán lo que usted esperar que lo hagan.

Sin embargo, también menciona esto:

Debemos advertirle que el valor predeterminado de la opción de map archive es yes , mientras que las otras dos opciones tienen un valor predeterminado de no . Esto se debe a que muchos programas no funcionan correctamente si el bit de archivo no se almacena correctamente para los archivos de DOS y Windows. El sistema y los atributos ocultos, sin embargo, no son críticos para el funcionamiento de un programa y se dejan a la discreción del administrador.

También puede leer más sobre el bit de archivo aquí: http://en.wikipedia.org/wiki/Archive_bit

Las bases de código con las que trabajo se extraen de los repositorios de Git en mi máquina Linux. Como nuestro código de producción está escrito para ser implementado en Linux, realizo todas las pruebas en mi máquina Linux pero me gusta usar Windows para el uso diario, incluida la edición / creación de código.

Para ese propósito, he creado un recurso compartido de Samba de la carpeta (mi carpeta de inicio) donde pago el código, de esta manera:

[wgrover] path = /home/wgrover available = yes valid users = wgrover read only = no browsable = yes public = yes writable = yes

Sin embargo, cuando edito un archivo de samba share //linux-box/wgrover en Windows, el permiso de archivo en Linux sigue cambiando a 755 aunque fue 644 antes de la edición .

Esto sigue apareciendo en mi git diff así:

diff --git a/debian/maggie.nginx.conf b/debian/maggie.nginx.conf old mode 100644 new mode 100755 index 7cda506..7eab574

Es posible establecer una create mask en smb.conf, pero eso tampoco "preservará" los permisos del archivo original. Puedo ignorar los cambios de modo de archivo en git estableciendo fileMode = false en .gitconfig pero eso también ignora el problema.

¿Hay alguna manera de preservar los permisos de archivos cuando se modifican desde Linux?