單人用的NFS idmapping

Introduction

NFS雖然是很方便的掛載方法,但不像samba或sshfs一樣可以做身份認證
本機的UID是什麼寫入到NFS server的UID就是什麼

e.g. 本機的UID是1001, username是hunglin
但NFS server的hunglin的UID是1000
但寫入到遠端的檔案會顯示1001而不是hunglin

本機
{% code %} drwxr-sr-x 7 hunglin hunglin 10M Mar 1 2022 file.txt {% endcode %}

NFS server {% code %} drwxr-sr-x 7 1001 1001 10M Mar 1 2022 file.txt {% endcode %}

如果NFS server和本機都只有自己使用的話有個方法可以間接的mapping id

指定匿名ID

NFS server端可以在/etc/export設定anonymous的uid和gid

all_squash,anonuid=1001,anongid=1001

https://linux.die.net/man/5/exports

all_squash是指將寫入的檔案的user和group都壓縮成anonymous的uid和gid
只要將anonuid和anongid設定成server端user的uid和gid就可以做到idmapping

重啟nfs server {% code lang:sh %} sudo /etc/init.d/nfs-kernel-server restart sudo start idmapd {% endcode %}

如此就可以達到idmapping的目的
但這方法只是解決了短期的問題
身為server面向的應該是多個使用者,查了很久方法大概是要以NFSv4搭配kerberos

kerberos又是啥? 看起來是個驗證機制
但設定看起來超複雜的= =
哪天真的有心情才會想弄吧…

利用kerberos 提供票據加密 - 鳥哥的Linux 私房菜