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를 익명 사용자에게 매핑하고 anonuid 및 anongid 는 익명 사용자의 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
있지만 임의로 값을 변경하기 전에 수행중인 작업을 이해해야합니다!
좋은 소스 :
- http://nfs.sourceforge.net/nfs-howto/ar01s07.html#pemission_issues
- http://support.apple.com/kb/TA22243
이게 도움이 되길 바란다!
답변
UID와 GID가 두 서버에서 일치합니까? 그것은 로그인과 그룹 이름이 아닌 액세스를 제어하기 위해 사용하는 것입니다.
답변
나를 위해 _netdev
클라이언트에 마운트 옵션을 제공하여 문제가 해결되었습니다 .
즉, 이것을 다음에 추가하십시오 /etc/fstab
:
nfs-server:/ /mnt nfs4 _netdev,auto 0 0