NFS의 기본 디렉터리 권한

NFS의 기본 디렉터리 권한

client역할 server이 매우 분명한 두 대의 서버가 있습니다 . server즉, NFS 공유를 호스팅하고 client마운트합니다. 통화 중에도 존재하는 통화 중인 client여러 사용자 간에 공유 그룹이 있습니다 . 공유에 대한 내 권한은 다음과 같습니다.sharedserverserver

user@server $ ls -al /export/share/
drwxrwsr-x+ 3 shared shared    4096 Apr 19 01:25 .
drwxr-xr-x  3 root  root       4096 Apr 12 20:10 ..

목표는 매우 명확합니다. shared그룹의 모든 구성원이 해당 디렉터리에서 파일을 만들고, 쓰고, 삭제할 수 있기를 바랍니다. 클라이언트에서 ls -la마운트된 디렉터리는 동일한 결과를 가져옵니다.

NFS 내보내기 파일은 server다음과 같습니다.

/export/share 10.0.0.0/24(rw,nohide,insecure,no_subtree_check,async)

내부에 설치하면 다음과 client같습니다 /etc/fstab.

10.0.0.1:/export/share /mnt/share nfs _netdev,noatime,intr,auto 0 0 

mount출력 client:

10.0.0.1:/export/share on /mnt/streams type nfs (rw,noatime,intr,vers=4,addr=10.0.0.1,clientaddr=10.0.0.2)

그러나 여전히 그룹의 사용자를 사용하여 해당 디렉터리에 파일을 만들 수 없는 것 같습니다.

예를 들어 사용자는 다음과 같습니다 jack.

user@server $ id jack
uid=1001(jack) gid=1001(jack) groups=1001(jack),1010(shared)

설치된 폴더에 있는 파일을 터치하려고 하면 client권한이 거부됩니다.

user@client $ sudo -u jack touch /mnt/share/a
touch: cannot touch `/mnt/share/a': Permission denied

예상대로 작동하지 않는 이유는 무엇입니까? jack그는 이 그룹의 구성원이므로 이 폴더 내에 파일과 폴더를 만들 수 있습니까 shared?

답변1

/etc/passwd/etc/group에 포함된 사용자/그룹 정보를 어떻게 전파합니까 ? 일반적으로 /etc/passwd /etc/group이러한 마운트를 자동으로 마운트하는 모든 시스템에 파일을 동기화하려면 NIS, LDAP 또는 rsync를 사용해야 합니다 . 그렇지 않으면 클라이언트는 파일 시스템의 권한에 대해 아무것도 모릅니다.

주의 깊게 읽어보시면 좋을 것 같습니다국정원 가이드.

답변2

NFS는 이름이 아닌 실제 숫자인 "groupid"와 "userid"를 사용합니다. 그룹과 사용자가 서버와 클라이언트에서 동일한 ID를 가지고 있는지 확인하십시오. 서버와 클라이언트의 합계를 확인하세요 /etc/passwd. /etc/group이상적인 설정은 NIS 또는 LDAP 서버를 통해 모든 사용자와 그룹을 공유하는 것입니다.

관련 정보