私はSynology NASボックス(DSM 5.1を実行しています)を持っており、NFS経由でディレクトリをエクスポートしました。私のUbuntuボックスにマウントしようとしています
ほとんど問題なく動作していますが、ユーザーとグループのマッピングに問題があります。Ubuntuのボックスでは、uid 1000 (roger)、gid 1000 (roger)となっています。Synologyでは、uid 1026 (roger)、group 100 (users)となっています
NFSv3 を使用すると、数値の uid/gid 値を使用しているため、Synology 上で所有権が混乱しています
私は同じユーザーを使用して、同じUbuntuのボックスからNFSマウントにアクセスするだけであれば、これは大丈夫なのですが、私はまた、WindowsのボックスからCIFS(SMB)を使用してディレクトリにアクセスしているので、パーミッションが間違っていることを意味します
Synologyのデフォルト設定でNFSv4(mount -o nfsvers=4
)を使用すると、Synology上のroger.users
が所有するファイルは、Ubuntuボックスから見るとroger.users
が所有しているように表示されます。これはいいですね
しかし、touch
ファイルを作成したときに
roger@ubuntu$ touch /mounts/diskstation/music/foo
Synology上では1000.1000
が所有しており、Ubuntuボックスから見るとnobody.4294967294
が所有しているように表示されます
Synology フォーラムで見つけたトピックはすべて、NFSv4 がサポートされていなかった 2011 年以降のものか、同じ質問をして諦めている人のものです
完全性のために、/etc/exports
は持っています
/volume1/music 10.0.0.0/24(rw,async,no_wdelay,root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)
…とUbuntuの箱にマウントしています
mount -t nfs diskstation:/volume1/music /mounts/diskstation/music/ -o rw,nfsvers=4
Why NFSv4 uid/gid mapping doesn’t work with AUTH_UNIX (AUTH_SYS)が問題かもしれないというヒントを見つけましたが、これは解決策がありません
この問題を回避する簡単な方法はありますか?これを解決するもっと複雑な(咳Kerberos咳)方法はありますか?
真面目な話、ケルベロスが答えならその一撃は受けるけど、無駄に時間を浪費する前に知っておきたい
更新: Synology documentation には Kerberos の様々なオプションについて書かれていますが、UI には見つかりません。リリースノートには「Kerberosセキュリティフレーバーが実装されていれば…」と書かれています。特定の機種には搭載されていない可能性があることを示唆するページを見つけました(しかし、再び見つけることはできません)。システム情報のページによると、私はDS211を持っています。もしかしたら、私の運がないのかな?
23 None 2015-01-04
NFSv4 IDマッピングが正しく動作するためには、クライアントとサーバの両方がidmapd
ID Mapperデーモンを実行していて、/etc/idmapd.conf
で同じDomain
を設定している必要があります
このようにして、NFSクライアントはそのID認証情報をワイヤ上のNFSコマンドでroger@example.com
として送信し、NFSサーバのidmapperはそれをNFSサーバ上のroger
というユーザにマッピングする。UID と GID は問題ではなく、idmapper によって各システムにマッピングされます
しかし、私のSynologyではそれを気にすることはありません。私の共有フォルダには以下のような権限があります
- Permissions
- ローカルユーザー
- 管理者=読み書き
- ローカルユーザー
- NFS パーミッション
- Squash
- すべてのユーザーを管理者にマッピングします
- Squash
これにより、anonuid=1024,anongid=100
(admin
ユーザおよびusers
グループ)がNAS上の/etc/exports
のエクスポートに追加されます
私のNFSクライアント(ID Mapperを実行していない)は、私のユーザ(1000:1000
)として私のNFSコマンドを送信し、そのUIDとGIDはNAS上に存在しないため、私のUIDとGIDを1024:100
に変換し、私は完全な権限を持つAdminユーザとして扱われています
これは、ビジネス環境のためのNFSの恐ろしく専門的で安全でない使用ですが、私が自宅で自分のファイルにアクセスするためだけに、それは私にとって許容できるNFSの動作の乱用です
別のオプションとして、roger
のUIDとGIDをNFSクライアントとNASで同じにして、IDマッピングなしでNFSv4を使用するか、UIDとGIDのみに依存するNFSv3を使用することもできます
9 suprjami 2015-11-29
全く同じ問題に悩まされています。Synology上でDockerを使ってKerberosサーバーをセットアップし、IDマッピングをセットアップするという大変な苦労をしましたが、それでも動作が気に入らなかったのです。Kerberosはあまりにもオーバーエンジニアリングされていて、リブートやオートマウンティングで作業を続けるのが難しい。さらに、新しく作成されたファイルのデフォルトのumaskは0000で、私のローカルのumaskが何であっても、すべての新しいファイルは777モードで作成されました
私の解決策はsuprjamiさんと似ていましたが、もう少し踏み込んでみました
- Synology Web UIで新しいユーザーを作成し、
roger.remote
のような名前を付けます。ユーザーグループにも同じようにして、ユーザー名と同じ名前を付けます - Synologyをrootにして、/etc/passwdを編集し、
roger.remote
のUIDを1000に、GIDを1000に変更します - etc/groupを編集し、グループ
roger.remote
も1000に変更します - SynologyのWeb UIで、squashを “all users to admin “に設定して保存します
- 再びrootとして、/etc/exportsを編集し、UID/GIDを
anonuid=1000,anongid=1000
に変更します /usr/syno/etc.defaults/rc.sysv/S83nfsd.sh restart
でNFSを再起動します- これもちょっとハックなんですが —
chmod 777 /volume1
ホームディレクトリがマウントされていて、奇妙な問題がたくさんありました。glibcaccess()
関数がマウントされた NFS ディレクトリでアクセス拒否を返すため、KDE は起動しませんでした (ただし、どのサブディレクトリでも動作します)。(ただし、どのサブディレクトリでも動作します) Firefox にも同様の問題があり、アクセスチェックのためにマウントされたディレクトリにファイルを保存することを拒否しました。パーミッションが正しく、マウントされたディレクトリ内のファイルをタッチ/作成/書き込みすることができたにもかかわらず。親ディレクトリの /volume1 を world 書き込み可能なディレクトリに変更すると、この間抜けな問題が修正され、クライアントアプリがそこに書き込むように誤魔化すことができました - 共有からファイルシステムのACLをすべて削除します。多くのランダムな実験を通して、これらのACLが作成されたファイルのモードマスクの問題を引き起こすことがわかりました。私はACLマスターではないので、もっとエレガントな解決策があるかもしれません。Synologyのrootとして、
synoacltool -del /volume1/myshare
を実行します。ls -l 出力から+
シンボルが削除されているのがわかるはずです - シェアの所有権を新しいユーザーに変更します。
chown roger.remote:roger.remote /volume1/myshare
- モードを755:
chmod 755 /volume1/myshare
に変更します - クライアントにボリュームをマウントし、パーミッションをテストしてください。同様にファイルをタッチして、bash の umask が正しく適用されていることを確認してください
$ umask 0002 $ cd /mnt/myshare $ touch test $ ls -l test -rw-rw-r-- 1 roger roger 0 Oct 21 18:15 test
Synologyでは、以下のように表示されます
# ls -l /volume1/myshare/test -rw-rw-r-- 1 roger.remote roger.remote 0 Oct 21 18:15 test
Enjoy!
2 Cal 2019-10-21