nobody(nfsnobody)ユーザとは何なのか
RHEL8 のリリースノートにて、nobodyユーザがnfsnobodyユーザから置き換わる
という内容があります
本件について、nobody,nfsnobodyユーザについてを確認し、NFSを利用しているチームでのOS移行時の影響範囲を調べます
そもそもnobodyユーザとは
nobodyユーザとは非特権ユーザのことで、特定のシステムを動作させるためだけの権限や特定のデータに対する所有者権限のみを持たせたユーザとなります
付与されている権限はUNIXシステム上で最も低い権限のようで、rootユーザの対局となるユーザともいわれています
基本的にNFSを使う際に利用するユーザのようで、NFSの他にはCGIを実行するユーザとして使われることもあるそうです
nobody と nfsnobody の違い
いろいろ調べてみましたが、特に違いがなさそうです
基本的にnobodyユーザを利用するシーンがNFSを利用する場合なので、
記事によってnfsnobodyユーザを利用するかnobodyユーザを利用するかがバラバラでした
非特権(最も権限が絞られている)ユーザである ということに関しては同じなので、
用途的にも同じになるのだと思います
- nobodyに関する参考 : nobody
nobodyに関する記事、めちゃくちゃ少ない
NFSでの使われ方
NFS上にデータディレクトリを作成する際、ディレクトリ(とその中のファイル)の所有者はnfsnobodyユーザとして作成することが通例となっているようです
/etc/exports というファイルにall_squash
と設定すると、 設定したnfsディレクトリ内のファイルに対するアクセスはnfsnobodyユーザでのアクセスとなり、
その他のユーザの権限による不正な書き込みや削除などからNFSディレクトリ内のファイルを守ることができます
- 参考1 : NFSのマウント設定例
- 参考2 : Linux NFSサーバの設定
CentOS7(RHEL7)までは、OSが自動でnfsnobody(uid:65534, gid:65534)ユーザを作成しているので、
このユーザをそのまま利用できます
用途が同じかつ、名前がややこしいので統合
上述の通り、nobodyユーザとnfsnobodyユーザで違いはないため、
RHEL8からはnfsnobodyユーザが作成されなくなり、nobodyユーザのみが作成されるようになります
- CentOS7 で確認
# cat /etc/passwd | grep nobody
nobody:x:99:99:Nobody:/:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
- RockyLinux8 で確認
# cat /etc/passwd | grep nobody
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
UID:65534, GID:65534 の nobody ユーザのみが作成されていることが分かります
影響について
nobodyユーザとnfsnobodyユーザの持っている権限が同じなので、
nfsnobodyユーザでできていたことがnobodyユーザになったことでできなくなった
みたいなことが起こり得ないと判断できるため、
影響もないと判断できると思います
終わりに
以上、NOBODY ユーザーが NFSNOBODY に置き換え
のリリースノートの内容について、
そもそもnobodyユーザとは何なのか から詳しく調べてみました
全く役に立たなそうですが、雑学程度にはなったのではないでしょうか
リリースノート読むの面白いですね