FreeBSDでターミナルプログラムをrootとして起動する必要があるのはなぜですか?

FreeBSDでターミナルプログラムをrootとして起動する必要があるのはなぜですか?

FreeBSDでは、すべてのグラフィックターミナルプログラム(xterm、rxvtなど)がsetuidルートがインストールされているか、setuidルートラッパーを使用しているように見えます。

Linuxでは、私が使用したディストリビューションでもこれは起こりません。

FreeBSDに端末プログラム用のsetuid実行可能ファイルまたはラッパーが必要なのはなぜですか?これは特権の昇格の脆弱性を導入する良い方法のようです。

ベストアンサー1

xtermこれはset-uidプログラムであることがわかりました。 1つの理由は、誰がどのデバイスを使用しているかを記録するためにファイルに書き込むことができる必要があるためですutmp。もう1つの理由は、xterm標準入力/出力として使用される擬似ttyデバイスの所有権を取得し、そのデバイスにアクセスするユーザーに所有権を設定する必要があるためです。

他のほとんどのUnix / Unixファミリーオペレーティングシステムは、同じ目標を達成するためにsetuidまたはsetgidビットを使用せずに代わりにより安全な他の方法を使用しますが、FreeBSDは元のソリューションを維持しているようです。

おすすめ記事