섬기는 사람

섬기는 사람

/share/global/usr/shareNFS를 통해 서버에서 /usr/share클라이언트 로 공유합니다. 클라이언트가 쓸 때 "읽기 전용 파일 시스템" 오류가 발생합니다.

섬기는 사람

파일 시스템 권한은 정상입니다.

$> ls -la /share/global/usr/
drwxrwxrwx 2 nobody nogroup 4096 Dec  6 14:37 share

클라이언트 IP는 rw로 내보내지고 192.168.101.250다른 내부 IP는 ro입니다.

$> grep usr /etc/exports
/share/global/usr/share 192.168.0.0/16(ro,subtree_check,all_squash) 192.168.101.250(rw,subtree_check,all_squash)

서버는 여기에 쓸 수 있습니다:

$> echo HELLO > /share/global/usr/share/REMOVEME && chmod 666 /share/global/usr/share/REMOVEME && echo ok
ok

고객

IP 주소 일치(정적):

$> ip addr | grep inet
inet 192.168.101.250/24 brd 192.168.101.255 scope global enp0s8

fstab은 rw를 지정합니다.

$> grep usr /etc/fstab
192.168.101.254:/share/global/usr/share /usr/share nfs rsize=8192,wsize=8192,timeo=3,intr,rw

rw가 설치되어 있습니다.

$> mount | grep usr
192.168.101.254:/share/global/usr/share on /usr/share type nfs4 (rw,relatime,vers=4.0,rsize=8192,wsize=8192,namlen=255,hard,proto=tcp,port=0,timeo=3,retrans=2,sec=sys,clientaddr=192.168.101.250,local_lock=none,addr=192.168.101.254)

그냥 읽어보세요:

$> ls -al /usr/share/REMOVEME
-rw-rw-rw-. 1 nfsnobody nfsnobody 7 Dec  6 15:14 /usr/share/REMOVEME

질문

클라이언트 측에서:

$> sudo -i
$> echo foo > /usr/share/REMOVEME
-bash: /usr/share/REMOVEME: Permission denied

여기서도 새 파일을 만들 수 없습니다.

구성의 모든 것이 좋아 보입니다. 클라이언트의 공유 디렉터리에 쓸 수 없는 이유는 무엇입니까?

서버는 Ubuntu 16.04이고 클라이언트는 CentOS 7입니다.

답변1

/etc/exports특정 IP 주소를 먼저 표시한 다음 IP 범위를 표시하려고 합니다.

/share/global/usr/share 192.168.101.250(rw,subtree_check,all_squash) 192.168.0.0/16(ro,subtree_check,all_squash) 

답변2

글을 쓸 때 오류 메시지가 나타나는 것 같습니다.뿌리클라이언트의 NFS 마운트에 대한 정보입니다. 비슷한 문제가 있었는데, 나에게 NFS 서버는 루트 디렉터리의 모든 "디스크"를 "가상 장치"로 표시하는 것 같았습니다. 루트 디렉터리는 실제로 서버의 디렉터리가 아니라 NFS 서버 목록에서 제공하는 "가상 장치"였습니다. , "읽기 전용 파일 시스템" 오류 메시지가 나타납니다. 구성에 따라 공유 볼륨의 루트 디렉터리에 쓸 때 오류 메시지가 나타날 수 있습니다.

그러나 공유 디스크에 하위 디렉터리가 있고 거기에 쓰려고 하면 제대로 작동합니다.

클라이언트 데모:

 root@dunharg:/mnt/share# touch write-test
 touch: cannot touch 'write-test': Read-only file system
 root@dunharg:/mnt/share# ls
 backup  hdd  nvme  ssd
 root@dunharg:/mnt/share# cd sdd
 root@dunharg:/mnt/share/sdd# ls
 home  share
 root@dunharg:/mnt/share/sdd# touch write-test
 touch: cannot touch 'write-test': Read-only file system
 root@dunharg:/mnt/share/sdd# cd share
 root@dunharg:/mnt/share/sdd/share# touch write-test
 ok

관련 정보