Desmontando a pasta de compartilhamento SMB

1

Eu montei uma pasta de compartilhamento SMB em / mnt / smb / e posso acessar os arquivos. Quando desmonto esta pasta compartilhada usando o comando:

umount /mnt/smb/

naturalmente, não consigo listar o conteúdo da pasta compartilhada usando o comando:

ls /mnt/smb/

Mas o problema é quando eu executo o comando ls a partir de um arquivo PHP na mesma máquina, o conteúdo da pasta SMB compartilhada pode ser listado! O conteúdo do arquivo PHP é:

<?php
  $command = 'ls /mnt/smb/';
  $result = shell_exec($command);
  echo $result;
?>

Qual é o meu erro? Existe algum outro commanf necessário para desmontar completamente o compartilhamento SMB? Eu também usei o comando abaixo, mas não tive sorte:

fusermount -u /mnt/smb/
    
por Hamid Reza 17.02.2018 / 10:28

1 resposta

1

Repita o comando umount conforme necessário, até que a pasta /mnt/smb seja u (n) montada de acordo com ls no shell. Então, também deve estar de acordo com o comando mount :

mount | grep /mnt/smb

para que o compartilhamento realmente não seja mais montado. Se algum processo ainda listar conteúdo remoto , ele deve ser armazenado em cache (no entanto, é improvável nesta situação de chamada do sistema php ).

Qualquer comando ainda pode ver o ponto de montagem , é claro, porque é um diretório. Quaisquer arquivos locais que o diretório contenha serão listados, por php ou de um shell.

Para corrigir este último problema, primeiro você pode mover / remover os arquivos do diretório local (enquanto o compartilhamento é não montado), então chmod 0 /mnt/smb as root para indicar o não montado e criar erros de ls enquanto não estiver montado.

    
por 17.02.2018 / 10:41