NFS ユーザー ID マッピングは一部の uid に対してのみ機能します

NFS ユーザー ID マッピングは一部の uid に対してのみ機能します

Synology NAS で NFS アクセスを設定しようとしています。歴史的理由により、クライアントとサーバーの uid が一致しません。NFSv4 を使用すると、idmap の使い方を理解するという代償を払って、この問題をエレガントに解決できることがわかりました (ただし、うまくいかないようです)。それSynology NAS でも同様です:ID マッピングを使用したマウント Synology NFSV4 エクスポート)。

とにかく、私はsuprjamiが提案した解決策に満足しました。Synology NAS 上の NFS によるユーザー ID マッピング(また、Web 上で同じテクニックを説明している他の場所もいくつか見つかりました) これは、all_squash オプションを使用して、クライアント上の任意のユーザーをサーバー上の特定のユーザーにマップするというものです。NAS のグラフィカル ユーザー インターフェイスによって提供される唯一の可能性は、uid=1024 を持つ admin というユーザーにマップすることです。

これはうまく動作します:

NAS-192.168.0.2 # cat /etc/exports
/volume1/photo  192.168.0.10(rw,async,no_wdelay,all_squash,insecure_locks,sec=sys,anonuid=1024,anongid=100)

IP 192.168.0.10 のクライアント ラップトップの場合:

laptop-192.168.0.10 # mount 192.168.0.2:/volume1/photo /mnt/nas
laptop-192.168.0.10 # ls -l /mnt
drwxrwxrwx  5 root root 4096 juin  22 17:08 nas

/mnt/nas 内のファイルを一覧表示、読み取り、および書き込みすることができ、すべてが予想どおりユーザー 1024 にクレジットされます。

さて、私の問題は、管理者ではなく、NAS 上で確認できるユーザー ID 1026 を持つ NAS 上のローカル ユーザーにマップしたいということです。

NAS-192.168.0.2 # id infisxc
uid=1026(infisxc) gid=100(users) groups=100(users)

したがって、サーバーの /etc/exports の anonuid 値を変更するだけです。

NAS-192.168.0.2 # cat /etc/exports
/volume1/photo  192.168.0.10(rw,async,no_wdelay,all_squash,insecure_locks,sec=sys,anonuid=1026,anongid=100)
NAS-192.168.0.2 # exportfs -ra

さて、クライアント側ではマウントはまだ成功しますが、権限はまったくありません。

laptop-192.168.0.10 # mount 192.168.0.2:/volume1/photo /mnt/nas
laptop-192.168.0.10 # ls -l /mnt
d---------  5 root root 4096 juin  22 17:08 nas

当然のことながら、フォルダーの内容を一覧表示することはできません。

大丈夫だと思いますが、何か忘れているかもしれません。アドバイスがあればお願いします。

念のため、私は Synology の DS414j NAS と DSM 6.1.2-15132 を使用しています。

関連情報