NFS 폴더에 대한 권한을 올바르게 설정하는 방법은 무엇입니까? 장착 종료시 권한이 거부되었습니다. 사용하여 Mac으로 내보내고 마운트하면 마운트되지만

dev 서버의 NFS 폴더에 연결하려고합니다. dev 서버의 폴더 소유자는 darren 및 group darren입니다.

디스크 유틸리티를 사용하여 Mac으로 내보내고 마운트하면 마운트되지만 폴더를 열려고 할 때 권한이 없다고 표시됩니다. rw, sync 및 no_subtree_check를 설정했습니다. Mac 사용자는 여러 그룹으로 대담합니다.

폴더에 액세스하려면 동일한 그룹과 사용자를 설정해야합니까?



답변

NFS는 RPC 인증을 기반으로 구축되었습니다. NFS 버전 3에서 가장 일반적인 인증 메커니즘은 AUTH_UNIX입니다. 클라이언트 시스템의 사용자 ID 및 그룹 ID는 각 RPC 호출에서 전송되며 액세스중인 파일에 대한 해당 ID의 권한은 서버에서 확인됩니다. 이것이 작동하려면 서버와 클라이언트에서 UID와 GID가 같아야합니다. 그러나 all_squash, anonuid 및 anongid 내보내기 옵션을 결합하여 모든 사용자가 단일 사용자 및 그룹으로 발생하도록 할 수 있습니다. all_squash 는 모든 UID 및 GID를 익명 사용자에게 매핑하고 anonuidanongid 는 익명 사용자의 UID 및 GID를 설정합니다. 예를 들어, 개발자 서버의 UID와 GID가 모두 1001 인 경우 다음과 같은 줄을 사용하여 홈 디렉토리를 내보낼 수 있습니다.

/home/darren 192.168.1.1/24(rw,all_squash,anonuid=1001,anongid=1001)

NFS 버전 4에 익숙하지 않지만 클라이언트에서 rpc.idmapd를 설정하여 서버로 보내는 uid 및 gid를 변경할 수 있다고 생각합니다.


답변

NFS를 마운트 할 때 NFS를 마운트 할 권한이 서버에있는 권한과 일치해야합니다. 예를 들어 사용자에게 읽기 전용 액세스 권한 만있는 경우 읽기-쓰기로 마운트하면 실제로 마운트를로드하려고 할 때 게시물에서 언급 한 것과 동일한 오류가 표시됩니다. 불행히도, 이것은 실제로 마운트 할 때가 아니라 폴더에 액세스 할 때만 나타납니다.

또한 사용자 NFS가 서버에서 실행되고 클라이언트의 사용자가 동일한 UID 및 GID를 사용하고 있는지 확인하려고합니다. id darren서버와 클라이언트 모두에서 실행 하여 이러한 값을 확인할 수 있습니다 . UID와 GID 값이 일치하지 않으면 편집 할 수 /etc/passwd있지만 임의로 값을 변경하기 전에 수행중인 작업을 이해해야합니다!

좋은 소스 :

이게 도움이 되길 바란다!


답변

UID와 GID가 두 서버에서 일치합니까? 그것은 로그인과 그룹 이름이 아닌 액세스를 제어하기 위해 사용하는 것입니다.


답변

나를 위해 _netdev클라이언트에 마운트 옵션을 제공하여 문제가 해결되었습니다 .

즉, 이것을 다음에 추가하십시오 /etc/fstab:

nfs-server:/   /mnt   nfs4    _netdev,auto  0  0