나는 로컬 네트워크에 있는 여러 Debian 10 컴퓨터 사이에서 동일한 기본 설정으로 nfs를 사용하고 있으며 모두 예상대로 작동합니다.
저는 autofs를 루트로 사용하여 각 시스템에서 nfs 공유를 마운트 및 마운트 해제하고 어디에서나 동일한 기본 설정을 사용합니다. 각 클라이언트 컴퓨터의 사용자는 마운트된 공유에 속하므로 액세스할 수 있습니다 nobody:nogroup
.
지금까지 나는 아무런 문제 없이 서버 컴퓨터의 공유를 클라이언트 컴퓨터에 마운트해 왔습니다. 그래서 두 대의 별도 기계가 있습니다.
이제 동일한 컴퓨터에서 autofs를 사용하여 컴퓨터에서 제공하는 공유를 마운트하려고 합니다. 따라서 서버와 클라이언트는 동일한 시스템에 있습니다.
autofs가 공유를 마운트하는 데는 문제가 없으며 루트가 아닌 사용자는 문제 없이 폴더 내용을 나열하고 파일을 볼 수 있지만 루트가 아닌 사용자가 공유에 쓰려고 하면 "권한 거부" 메시지가 나타납니다.
$ touch test.file
touch: cannot touch 'test.file': Permission denied
$ echo "content" > test.file
bash: test.file: Permission denied
이는 루프백에서 127.0.0.1을 사용하거나 이더넷 또는 WiFi 인터페이스에서 192.168.xy를 사용하여 공유에 액세스할 때 발생합니다. 다른 시스템은 autofs를 사용하고 동일한 설정을 사용하여 문제 없이 동일한 공유를 마운트하며, 시스템도 autofs를 사용하고 동일한 설정을 사용하여 다른 시스템의 공유를 문제 없이 다시 마운트합니다.
nfs 서버 설정은 다음과 같습니다.
$ sudo exportfs -v
/exports/share 127.0.0.1/32(rw,wdelay,root_squash,all_squash,sec=sys,rw,secure,root_squash,all_squash)
/exports/share 192.168.0.0/16(rw,wdelay,root_squash,all_squash,sec=sys,rw,secure,root_squash,all_squash)
다음은 다른 파일의 기본 맵을 통해 로드되는 autofs 설정입니다.
$ cat /etc/auto.shares
share_loopback -fstype=nfs4,rw,retry=0,hard,noac,noexec,proto=tcp 127.0.0.1:/exports/share
share_network -fstype=nfs4,rw,retry=0,hard,noac,noexec,proto=tcp 192.168.x.y:/exports/share
사용자가 동일한 기본 설정을 사용하여 동일한 시스템에 동일한 nfs 공유를 수동으로 마운트하면 모든 것이 제대로 작동하고 권한 문제가 없습니다.
$ sudo mount -t nfs4 -o rw,hard,noac,noexec,proto=tcp 127.0.0.1:/exports/share /media/share_loopback
$ sudo mount -t nfs4 -o rw,hard,noac,noexec,proto=tcp 192.168.x.y:/exports/share /media/share_network
autofs가 수동으로 설치할 때와 내부적으로 다른 작업을 수행하는 것 같습니다.
그렇다면 autofs를 통한 마운트가 "권한 거부"를 보고하는 원인은 무엇이며 어떻게 작동하게 할 수 있습니까?