읽기 전용 NFS4가 있는 이유는 무엇입니까?

읽기 전용 NFS4가 있는 이유는 무엇입니까?

NFS 서버 측:

[USER@NFSSERVER ~]$ cat /etc/exports
/var/foo/logs 10.75.16.4(ro,sync)
/var/foobar 10.100.102.0/24(rw,sync)  
[USER@NFSSERVER ~]$ 

NFS 클라이언트:

[root@NFSCLIENT ~]# grep nfs /etc/fstab 
10.100.102.34:/var/foobar /var/foobar nfs auto 0 0
[root@NFSCLIENT ~]# 

NFS 클라이언트는 10.100.102.0/24에 있습니다.

다른 NFS 클라이언트는 이 디렉터리에 쓸 수 있습니다.

질문:

[root@NFSCLIENT foobar]# touch testing
touch: cannot touch `testing': Permission denied
[root@NFSCLIENT foobar]# 

질문: 왜 우리는 글을 쓸 권한이 없나요? FS는 RW로 설치되며 둘 다 RHEL 6 및 NFSv4입니다.

답변1

이 옵션 없이 파일 시스템을 내보내면 no_root_squash루트 사용자 ID가 서버측에서 "anonymous" 또는 "nobody"로 매핑됩니다. 이는 쓰기 권한을 효과적으로 거부합니다. 이는 NFS 마운트를 통한 SUID 유형의 공격으로부터 보호하기 위한 상식적인 기본값이지만, 익숙하지 않은 사람들에게는 이러한 문제가 발생할 수 있습니다. 일반적으로 루트가 아닌 사용자(UID != 0)로 NF 마운트에 액세스할 수 있습니다. 또는 서버에서 다시 내보내고 클라이언트에 다시 마운트하여 마운트된 파일 시스템에 쓸 수 있는 권한을 얻는 옵션을 추가할 수 no_root_squash있습니다 /etc/exports. 클라이언트 루트에서와 마찬가지로.

관련 정보