卸载 SMB 共享文件夹

卸载 SMB 共享文件夹

我在 /mnt/smb/ 下挂载了一个 SMB 共享文件夹,并且可以访问这些文件。当我使用命令卸载此共享文件夹时:

umount /mnt/smb/

当然,我无法使用命令列出共享文件夹内容:

ls /mnt/smb/

但问题是,当我从同一台计算机上的 PHP 文件运行 ls 命令时,可以列出共享 SMB 文件夹的内容! PHP文件的内容是:

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

我的错误是什么。是否需要任何其他命令才能完全卸载 SMB 共享?我也使用了下面的命令,但没有运气:

fusermount -u /mnt/smb/

答案1

umount根据需要重复该命令,直到/mnt/smb根据lsshell 中的说明 u(n) 挂载该文件夹。那么也应该按照mount命令:

mount | grep /mnt/smb

这样共享就不再被挂载了。如果某些进程仍然列出偏僻的内容,它必须被缓存(php尽管在这个系统调用情况下不太可能)。

任何命令仍然可以看到挂载点当然,因为它是一个目录。任何当地的php该目录包含的文件将由shell列出。

为了解决最后一个问题,您可以首先从本地目录移动/删除文件(而共享是不是已安装),然后chmod 0 /mnt/smb以 root 身份指示未安装并在未安装时创建 ls 错误。

相关内容