Mudanças estranhas de permissão ao salvar arquivo em uma partição Samba de um editor do Windows

Mudanças estranhas de permissão ao salvar arquivo em uma partição Samba de um editor do Windows

Estou tentando descobrir por que um comportamento específico é exibido quando as permissões são alteradas em um arquivo que está sendo salvo de um editor do Windows em uma partição Unix montada em SAMBA.

Situação:

  • Temos um arquivo no Unix, com 777 permissões:

    -rwxrwxrwx 1 testuser users 4859 Jan 23 15:09 fbparser.pl*

  • O diretório onde o arquivo está localizado é montado a partir de um PC com Windows 7, via Samba.

  • Abrimos o arquivo para edição nos editores "Notepad++" ou "Sublime".

  • Quando o arquivo é alterado e salvo, no lado unix as permissões mudam para:

    -rw-rwxrwx 1 testuser users 4859 Jan 23 15:09 fbparser.pl*

Agora, suspeitei que NÃO fosse por causa da montagem do Samba, porque o mesmo problemaNÃOocorrer ao abrir e salvar o arquivo no bloco de notas normal do Windows!

Portanto, meu pensamento inicial foi que isso acontecia porque os editores de programação mencionados acima podem ser configurados para - em vez de simplesmente salvar o arquivo - para renomear o arquivo original $orig_filename.bake salvar o novo conteúdo como NOVO arquivo com o nome do arquivo original. Isso se baseia em minha experiência anterior com o mesmo problema usando o editor UltraEdit.

No entanto, se esse for o motivo das alterações nas permissões, não consigo explicar dois OUTROS sintomas que observei:

  • Em primeiro lugar, não há nenhum arquivo de backup sendo criado.

  • Segundo, ao criar NOVOS arquivos (usando touch) no mesmo diretório no Unix Shell, as permissões para o novo arquivo NÃO são -rw-rwxrwxde todo.

  • Terceiro, se for importante, o número do inode do arquivo permanece o mesmo após a edição.

O que mais poderia ser o problema e quais etapas posso seguir para investigá-lo?

Meu próprio problema com o UltraEdit desapareceu quando eu disse ao UE para NÃO fazer backup do arquivo renomeando; no entanto, o Notepad++ não possui essa opção.

Responder1

Encontrei esta pergunta ao tentar resolver um problema muito semelhante. A solução no meu caso foi adicionar map archive = noà seção global do smb.conf.


O problema subjacente é a maneira como o Samba mapeia as permissões do Dos para o Linux.

Parece que quando o notepad ++ salva um arquivo, ele está configurando/redefinindo o atributo "archive" do arquivo dos. Por padrão, o Samba usa isso para gerenciar o atributo de execução para permissões de usuário em um arquivo.

Então, se você definir o parâmetro Samba:

map archive = no

O atributo não é mapeado e as permissões de execução do usuário são retidas de acordo com o que foram definidas anteriormente.

Responder2

Eu tive a mesma situação. Para mim ajudou a alterar o parâmetro de criação de máscara no arquivo smb.conf.

create mask = 0600 ->  create mask = 0700

informação relacionada