
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.bak
e 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-rwxrwx
de 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