Existe uma maneira infalível no nível do usuário para forçar a terminação de conexões sshfs?

0

Eu quero que sshfs conexões sejam encerradas após algum tempo, uma hora no máximo, e isso significa iniciar o comando at com fusermount -u no mesmo comando ou script que eu uso para iniciar o sshfs montar.

No entanto, percebo que o fusermount pode falhar se os arquivos estiverem em uso, embora eu queira que o comando at funcione se ainda houver arquivos abertos na conexão ou não.

Na minha experiência, a única maneira confiável é executar os comandos fusermount como raiz ou encerrar a conexão sshfs por meio do comando kill .

Existe alguma outra maneira de forçar uma desconexão sem estar sendo executado como root? O problema é que eu posso não estar no terminal quando os arquivos ainda estão abertos, mas por uma questão de segurança, a conexão deve ser interrompida, a menos que eu cancele o comando at .

    
por vfclists 02.10.2016 / 20:29

1 resposta

1

Se você quiser apenas liberar o ponto de montagem e não se importar em encerrar a conexão SSH, poderá executar fusermount -z /mount/point . Isso executa uma desmontagem lenta: o ponto de montagem não está mais associado à montagem, mas a montagem não desaparece até que todos os arquivos abertos nessa montagem sejam fechados.

Se você deseja apenas fechar a conexão SSH e não se importar com a montagem, você pode simplesmente eliminar o processo do servidor SFTP. Essa é a beleza do FUSE: mate o processo oferecendo o serviço e ele foi embora. Uma montagem não pode bloquear um recurso do sistema. Os processos que tentam acessar os sistemas de arquivos receberão um erro (ENOTCONN ”Terminal de transporte não está conectado”).

Se você quiser eliminar os processos que possuem arquivos abertos nesse sistema de arquivos, você pode usar o fuser comando (sem relação com o FUSE, exceto pelo fato de F ser a primeira letra do “arquivo”).

fuser -k /mount/point
    
por 02.10.2016 / 23:29