Estranha permissão muda ao salvar o arquivo em uma partição do Samba de um editor do Windows

4

Estou tentando descobrir por que um comportamento específico é exibido quando perms mudam 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 em 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 do unix as permissões mudam para:

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

Agora, eu suspeitava que talvez não fosse devido à montagem Samba, porque o mesmo problema NÃO ocorre ao abrir e salvar o arquivo no bloco de notas comum do Windows!

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

No entanto, se essa é a razão para as mudanças permanentes, não sei explicar dois outros sintomas que observei:

  • Primeiro, não há arquivo de backup sendo criado em primeiro lugar.

  • 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-rwxrwx .

  • Em terceiro lugar, se for importante, o inode # do arquivo permanece o mesmo após a edição.

O que mais poderia ser o problema e que passos posso dar para investigá-lo?

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

    
por DVK 24.01.2013 / 20:37

2 respostas

3

Encontrei esta questão 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 é o modo 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. 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 está mapeado e as permissões de execução do usuário são mantidas de acordo com o que foi definido anteriormente.

    
por 09.10.2013 / 20:01
0

Eu tive a mesma situação. Para mim ajudou a mudar a criação do parâmetro mask no arquivo smb.conf.

create mask = 0600 ->  create mask = 0700
    
por 24.10.2016 / 17:18