Permitir sobrescrever arquivos abertos em um compartilhamento smb

1

Temos um compartilhamento smb em uma caixa linux que é usada como compartilhamento de rede para máquinas Windows. Colocamos um executável para todos usarem. A questão é que, se alguém tiver o aplicativo em execução, não poderemos atualizar o arquivo no compartilhamento.

O mais estranho é que, se você excluir o arquivo de uma máquina Windows, ele será concluído com êxito, mas quando você atualizar o diretório, ele aparecerá novamente. Além disso, se você tentar copiar o arquivo, ele simplesmente trava, não dá um erro de permissão.

Eu esperaria que um usuário tenha a permissão negada para excluir um arquivo porque alguém o abriu ou permite que você o exclua. O estranho é que, se você excluir o arquivo e, em seguida, o outro usuário fechar o arquivo, ele desaparecerá de repente, não é bom.

O ideal seria que houvesse uma maneira de dizer ao smbd para não permitir que alguém bloqueasse um arquivo para um compartilhamento específico. Se alguém excluir um arquivo, ele deverá ser excluído, mesmo se outro usuário o tiver aberto.

    
por Benjamin Peikes 27.06.2014 / 21:09

1 resposta

4

O Samba suporta apenas desabilitar o bloqueio no serviço (compartilhamento) nível e não no nível de arquivo individual. Desativar o bloqueio cria a possibilidade de corrupção de dados e a página do manual avisa contra ele. (Eu nunca fiz isso, então eu não posso te dar nenhuma anedota pessoal. Soa como uma má idéia para mim.)

O que você está pedindo não é algo que um verdadeiro servidor SMB baseado em Windows faria, então posso imaginar criando problemas, especialmente se você estiver executando qualquer tipo de aplicativo de "banco de dados" que use o compartilhamento de arquivos de essa parte.

Se você tiver para fazer isso, eu dedicaria um serviço inteiro a este executável apenas para ter certeza de que você não criará corrupção de dados com outros arquivos.

    
por 27.06.2014 / 21:27