Como evito alterar as permissões do Linux de um arquivo ao salvar em uma conexão do samba?

4

Eu tenho um servidor de desenvolvimento Ubuntu e uma estação de trabalho do Windows 7. Eu uso o Windows Gvim para editar arquivos no servidor linux, através de uma conexão samba.

Salvar arquivos do Windows altera as permissões do Linux de maneira estranha, dependendo do aplicativo do Windows que estou usando, e também dependendo se há uma extensão de arquivo ou não.

Aqui estão alguns testes

Sem extensão; Notepad2: 644 a 764

matt@mattserver ~ % ls -l testfile
-rw-r--r-- 1 matt matt 0 2011-05-28 07:09 testfile
--- Save from Windows Notepad2 over network ---
matt@mattserver ~ % ls -l testfile
-rwxrw-r-- 1 matt matt 1 2011-05-28 07:09 testfile

Sem extensão; Gvim: 644 a 760

matt@mattserver ~ % ls -l testfile
-rw-r--r-- 1 matt matt 0 2011-05-28 07:10 testfile
--- Save from Windows Gvim over network ---
matt@mattserver ~ % ls -l testfile
-rwxrw---- 1 matt matt 0 2011-05-28 07:11 testfile

Extensão; Notepad2: 644 to 644 (bom!)

matt@mattserver ~ % ls -l testfile.txt
-rw-r--r-- 1 matt matt 0 2011-05-28 07:13 testfile.txt
--- Save from Windows Notepad2 over network ---
matt@mattserver ~ % ls -l testfile.txt
-rw-r--r-- 1 matt matt 0 2011-05-28 07:13 testfile.txt

Extensão; Gvim: 644 a 760

matt@mattserver ~ % ls -l testfile.txt
-rw-r--r-- 1 matt matt 0 2011-05-28 07:14 testfile.txt
--- Save from Windows Gvim over network ---
matt@mattserver ~ % ls -l testfile.txt
-rwxrw---- 1 matt matt 0 2011-05-28 07:14 testfile.txt

Aqui está a parte relevante do meu smb.conf

[matt]
comment = Matt
path = /home/matt
public = yes
writable = yes
valid users = matt
create mask = 0771
directory mask = 0771
force user = matt
force group = matt

Eu quero que as permissões não sejam afetadas quando salvar a conexão do samba. Como eu faço isso?

    
por Matt Alexander 28.05.2011 / 15:22

2 respostas

4

Você pode tentar configurar no smb.conf o suporte nt acl para "não":

This boolean parameter controls whether smbd will attempt to map UNIX permissions into Windows NT access control lists.

Default: nt acl support = yes
Example: nt acl support = no

Outro que pode ajudar é:

map archive = no

    
por 28.05.2011 / 15:40
0

Descobri que nem o 'acl support = no' nem o 'map archive = no' solucionaram o problema. Minha experiência é que o Samba sempre aplica permissões de arquivo definidas por 'create mask' e 'directory mask', independentemente de salvar um arquivo novo ou existente.

    
por 10.06.2014 / 12:08