권한은 NFS 마운트에 대한 액세스를 제한하지 않습니다.

권한은 NFS 마운트에 대한 액세스를 제한하지 않습니다.

중앙 NAS의 NFS 마운트 디렉토리가 있는 RHEL 5.9 서버가 있습니다. 여기에는 aird1(11055):app_dev(1101)권한이 있는 사용자/그룹이 소유한 디렉터리가 있습니다 rwxrwsr-x(예:시드app_dev에). 마지막으로 grid(1001)사용자로 실행되는 프로세스가 있습니다 .

문제는 grid사용자가 해당 디렉토리에 쓸 수 없음에도 불구하고 쓸 수 있다는 것입니다. NFS 탑재 디렉터리와 동일한 소유권 및 권한을 사용하여 로컬 테스트 디렉터리를 생성하면 해당 디렉터리에 쓸 수 없습니다. 이는 예상한 대로입니다.

어떤 이유로 NFS 마운트는 권한을 완전히 존중하지 않습니다. 예는 다음과 같습니다.

$ ls -ldn /nfs/aird1/tmp
drwxrwsr-x 5 aird1(11055) app_dev(1101) 24576 Oct 17 13:21 /nfs/aird1/tmp

디렉토리는 디렉토리 소유이며 aird1(11055):app_dev(1101)ACL이 첨부되어 있지 않습니다.

내 계정으로 파일을 만들려고 하면 실패합니다.

$ id
uid=20501(myuser) gid=1003(mygroup) groups=10(wheel),1003(mygroup)

$ ls -l /nfs/aird1/tmp/xyz
ls: /nfs/aird1/tmp/xyz: No such file or directory

$ touch /nfs/aird1/tmp/xyz
touch: cannot touch `/nfs/aird1/tmp/xyz': Permission denied

이는 예상된 사항이지만 이제 사용자의 경우와 동일합니다 grid.

$ id
uid=1001(grid) gid=1001(oinstall) groups=1001(oinstall),1002(dba)

$ touch /nfs/aird1/tmp/xyz

$ ls -l /nfs/aird1/tmp/xyz
-rw-r--r-- 1 grid(1001) app_dev(1101) 0 Oct 17 13:24 xyz

이 파일을 어떻게 만들 수 있나요? 디렉토리 소유권에 대한 UID와 GID 사이에는 중복이 없으며 myuser일부 gridUID/GID는 파일을 생성할 수 있지만 다른 UID/GID는 생성할 수 없습니다.

이것은 다음의 기록입니다 /etc/fstab.

nas:/vol/... /nfs  nfs   rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,nosuid,actimeo=0 0 0

어떤 아이디어가 있나요?

감사해요!

답변1

NFS는 원래 모든 컴퓨터에서 동일한 계정(사용자, 그룹 및 그룹 구성원)을 가진 네트워크에서 사용하도록 설계되었습니다. 그렇지 않으면 이상한 일이 일어납니다. 최근 NFS 구현에는 클라이언트와 서버 간에 사용자 및 그룹 ID를 다시 매핑하는 방법이 있습니다.

무슨 일이 일어나고 있는지에 대한 내 추측은 다음과 같습니다. 이 디렉토리는 app_dev그룹 1101(클라이언트에서 호출됨)에 의해 쓰기 가능합니다. 서버는 user1001을 대신하여 요청을 확인하고(클라이언트에서 호출됨 grid, 서버는 상관하지 않음) user1001로 디렉터리에 쓰려고 합니다. /nfs/aird1/tmp서버의 사용자 1001은 그룹 1101에 속하므로 이 디렉터리에 쓸 수 있습니다. 따라서 요청이 승인됩니다.

관련 정보