sudo/root-ness検出の仕組み

sudo/root-ness検出の仕組み

システム全体を変更するプログラムには、次のものが必要です。sudo すでにrootユーザーでない限り

今質問は次のとおりです。どのように正確にシステムは私がルートではないことを知っていますか?

できる:

  • 私が特定のグループに属していることを確認してください。では、どのグループに参加する必要がありますか?

  • ルート自体のよく知られたIDを確認してください(たとえば、「rootユーザー」がソースコードにハードコードされています)。
    もしそうなら、私のルートアカウントが破損した場合はどうなりますか? root権限で別のアカウントを作成できないので、オペレーティングシステムを強制的に再インストールする必要がありますか?

  • 一部のファイルの内容に基づいて自分の名前/グループを確認し、正しい権限を付与しますか?では、この情報を含むファイルは何ですか?

  • 別のことをしますか?それでは何をしますか?

ベストアンサー1

Unixのユーザー名は重要ではありません。数字のユーザーIDのみがあります。ルートの数値 ID は常に 0 です。これはすべての場所(カーネル、ユーティリティなど)にハードコードされています。

を実行して、数値のユーザーIDを見つけることができますid

数値のユーザーIDは、実行中のプロセスの属性です。ログインするとlogin(など)でログインしたプロセスがルートsshd(UID 0)で実行され、ログインが承認されるとユーザーIDに切り替わり、シェル(passwdで指定された/ etc /で)が実行されます。 )。そこからまたは他のものを使用してsudoユーザーIDを切り替えるにsu設定値ビットは、実行時にプロセスがプログラム所有者(ルート、UID 0)で実行されるように設定(chmod u+sまたは設定される予定)です。chmod 4xxx同様に、権限が与えられたら、sudoすべてのプログラムをrootとして実行します(実行、シェルなど何を指示しても関係ありません)。 (このsu場合、切り替える他のユーザーを指定すると、そのUIDに切り替えた後にシェルなどを実行することになります。)

あなたの答えその他問題は、rootアカウントが数字にすぎないため、rootアカウントを「オフ」にする方法はありませんが、rootとしてログインできない理由はいくつかあります(パスワードを忘れた場合など)。これらのいずれもオペレーティングシステムを再インストールする必要はありませんが、問題を解決するには少し技術的なスキルが必要になることがあります。 (たとえば、ルートパスワードを忘れた場合は、sudoを使用してパスワードでルートにアクセスしたり、シングルユーザーモードで起動してパスワードをリセットしたり、ライブメディアまたはリカバリ環境で起動したりできます。)

おすすめ記事