/share/global/usr/share
NFS를 통해 서버에서 /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