'passwd'コマンドはどのようにrootユーザー権限を取得しますか?

'passwd'コマンドはどのようにrootユーザー権限を取得しますか?

Linuxは、passwd、setuidなどの特定のプロセスにeuid 0(ルートのuid)のみを提供する必要があることをどのように知っていますか?

プロセスがroot権限を取得できる場合、Linuxプラットフォームに潜在的なセキュリティの脆弱性が発生しませんか?

たとえば、rootユーザー権限(passwdなど)を取得できるプログラムを作成すると、重要なシステムファイル(/ etc / passwd、/ etc / groups)が破損する可能性があります。

Linuxはどのようにセキュリティを維持しますか?

ベストアンサー1

このpasswdプログラムは設定値ビット設定は次のコマンドで確認できますls -l

-rwsr-xr-x 1 root root 39104 2009-12-06 05:35 /usr/bin/passwd

これはs(行の4番目の文字)です。

この権限ビットが設定されているすべてのプログラムは、そのプログラムの所有者として実行されます。この例では、ユーザーはroot(行の3番目の単語)です。

これらのsetuidプログラムはシステムのすべてのユーザーが実行できるため、何も破損しないことを確認する必要があります。効果的なルート権限。そのため、パスワードは本人のみ変更できます。 Linuxや他の同様のオペレーティングシステムは、これらのsetuidプログラムの作成者が非常に注意を払っているため、依然として安全です。

例を見る訴訟実行プログラムApache Webサーバーでは、これは広く使用されているsetuidプログラムです。このソースコードには、異常に多数のコメントがあります。

おすすめ記事