私のNFSサーバーには、次のエクスポートが定義されています。
#NFS exports Database
/shared -alldirs -network=192.168.1 -mask=255.255.255.0
私のNFSクライアントから:
192.168.1.7:/shared /shared nfs rw 0 0
明らかに、サーバーのルートとして私が望むものは何でもすることができます。ただし、クライアントでは、通常のユーザー「gabe」はnfsマウントを変更できますが(権限があると仮定)、ルートは変更できません。
私の一般ユーザーとして:
gabe@client$ cd /shared
gabe@client$ ls -l
total 8
drwxrwxrwx 4 gabe wheel 512 Mar 20 19:20 tmp
gabe@client$ cd tmp
gabe@client$ touch test.txt
gabe@client$ rm test.txt
rootユーザーとして:
# cd /shared/tmp
# touch test.txt
touch: test.txt: Permission denied
繰り返しますが、これはすべてNFSにあります。顧客そのような面では、-maprootオプションと関連があると考えられます。 NFSを初めて設定したところ、この機能が見つかりました。私はこれを見つけることができるかどうかを調べるために今少し読んでみましょう。しかし、誰かが洞察力を持っているならば感謝します。
ベストアンサー1
NFSは、ユーザーとグループIDがネットワーク上のすべてのコンピュータで同じであるというアイデアとして設計されています。一般ユーザーには大丈夫です。ただし、ルートのUIDは常に0であり、1台のコンピュータにrootアクセス権があるため、ネットワーク上のすべてのコンピュータにrootアクセス権が必要であるというわけではありません。
したがって、NFSにはルートに対する特別な処理があります。デフォルトでは、ルートは通常nobody
書き込み権限を持たないユーザーにマップされます。この-maproot
オプションを使用すると、ルートの処理方法を変更できます。 BSDオプションは-maproot=root
Linuxno_root_squash
オプションに対応します。