NFS 공유가 /vol/mynfs
Linux 클라이언트에 마운트되었습니다. 폴더가 표시되지 않으며 ls
bash 완료도 작동하지 않습니다 /vol/mynfs
. 그러나 하위 디렉터리로 변경하면 모든 파일이 표시됩니다.
$ ls /vol/mynfs
total 0
$ cd /vol/mynfs/test
$ ls # shows all files as expected now.
먼저 파일이 보이지 않는 이유는 무엇이며 항상 보이도록 하려면 어떻게 해야 합니까?
답변1
NFS 공유가 자동 마운트된 것으로 가정합니다. 그렇죠?
공유가 실제로 마운트되기 전에는 /vol/mynfs
단지 빈 디렉토리이므로 ls
그렇게 표시됩니다. 해당 디렉터리로 이동하면 실제로 마운트가 수행되므로 ls
그 이후에는 현재 마운트된 디렉터리의 내용이 표시됩니다.
공유가 실제로 마운트되어 있는 동안에는 파일을 나열할 수 있습니다. 이후에 공유가 마운트 해제되면(비활성 시간 초과 후 수동 또는 자동으로) 디렉터리가 다시 비어 있는 것으로 나타납니다.
어떤 이유로든 (cd /vol/mynfs; ls)
마운트를 강제로 수행해야 하는 경우 와 같은 작업을 수행합니다.ls
답변2
해당 디렉토리에 대한 읽기 권한이 있는지 확인하십시오. 에 대한 출력을 살펴보십시오
. 사용자 또는 그룹에 읽기 액세스 권한이 있습니까? 권한을 읽는 방법을 배울 수 있습니다.ls -la /vol/mynfs/.
.
여기
실행 액세스 권한이 있지만 읽을 수 없는 경우 폴더와 해당 하위 디렉터리를 열 수 있지만 나열할 수는 없습니다(정확한 문제).원천sudo
다음을 실행하여 이 문제를 해결할 수 있습니다( 폴더를 소유하지 않은 경우 루트/사용해야 할 수 있음 ).
chmod u+r /vol/mynfs/.
해당 폴더의 사용자에게 읽기 권한이 추가됩니다.
/.
심볼릭 링크라면 명령에 추가 항목이 필요할 수도 있습니다.
답변3
저도 이 경우를 시도해 봤습니다.
솔루션 1
제 경우에는 QNAP NAS 서버를 사용하고 있습니다.
내 NAS 공유 폴더 이름은 'mynfs'입니다.
QNAP NAS 서버 및 chmod 750 mynfs에 ssh
chmod 750 /share/NFSv=4/mynfs
NFS 서버 측 chmod 설정 후 내 클라이언트 측 nfs는 이제 모든 파일과 디렉토리를 표시할 수 있습니다.
솔루션 2
이 해결 방법은 클라이언트 측 /etc/fstab을 수정하는 것입니다. 아래 예에서 10.0.0.254는 내 QNAP NAS 서버입니다.
10.0.0.254:/mynfs /vol/mynfs nfs defaults 0 0
로 수정하다
10.0.0.254:/mynfs /vol/mynfs nfs relatime,vers=4.1,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,local_lock=none 0 0
/etc/fstab을 수정한 후 /vol/mynfs를 다시 마운트합니다. 파일은 /vol/mynfs에 나타납니다.