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

셸의 지침 에 따라 폴더가 u(n) 마운트될 umount때까지 필요에 따라 이 명령을 반복합니다 . 그런 다음 다음 명령 도 따라야 합니다 ./mnt/smblsmount

mount | grep /mnt/smb

이렇게 하면 공유가 더 이상 마운트되지 않습니다. 일부 프로세스가 여전히 나열되는 경우외딴콘텐츠를 캐시해야 합니다( php이 시스템 호출 사례에서는 가능성이 낮지만).

모든 명령을 계속 볼 수 있습니다.마운트 포인트물론 디렉토리이기 때문입니다. 어느현지의php이 디렉토리에는 쉘에 의해 나열될 파일이 포함되어 있습니다.

마지막 문제를 해결하려면 먼저 로컬 디렉터리에서 파일을 이동/삭제할 수 있습니다(반면 공유는아니요설치된 경우) chmod 0 /mnt/smb루트는 설치되지 않았음을 나타내고 설치되지 않은 경우 ls 오류를 생성합니다.

관련 정보