su worldが実行可能なのはなぜですか?

su worldが実行可能なのはなぜですか?

複数のユーザーがリモートでログインするヘッドレスサーバーがあります。他のユーザーはsudoersファイルにないため、通過できませんsudo。ただし、権限がsuあるため-rwsr-xr-x、ルートパスワードを無差別に代入する試みを防ぐことはできません。

ユーザーがルートパスワードを知っている場合は、とにかくシステムが破損する可能性があると主張するかもしれませんが、私はそうではないと思います。 OpenSSHは、他のユーザーがサーバーに物理的にアクセスできないようにPermitRootLogin no構成されています。PasswordAuthentication no私が知る限り、フル実行権限は、/usr/bin/suユーザーが自分のサーバーからrootアクセス権を取得しようとする唯一の方法です。

私をさらに混乱させることは、それがうまくいかないようです。su何もせずにただ走ることができますが、sudo su不便ではありません。

私は何かを見落としましたか?suただ歴史的な理由で公演ができる世界の許可はありますか?この権限を削除すると、まだ経験していない欠点はありますか?

答え1

何かを逃したイルカチュウの答え問題は、ルートに昇格させることは1つの特定の用途にすぎないということですsu。 suの一般的な用途は、他のユーザーのログインアカウントで新しいシェルを開くことです。他のユーザーできるはいroot(おそらく最も一般的に)、しかし、su次のように仮定するために使用できます。どのローカルシステムで確認できるID。

たとえば、ユーザーとしてログインして報告されたが再現できない問題を調査しjimたい場合は、ユーザーとしてログインして問題を引き起こすコマンドを実行しようとします。mikemike

13:27:20 /home/jim> su -l mike
Password:(I type mike's password (or have him type it) and press Enter)
13:27:22 /home/mike> id
uid=1004(mike) gid=1004(mike) groups=1004(mike)
13:27:25 /home/mike> exit  # this leaves mike's login shell and returns to jim's
13:27:29 /home/jim> id
uid=1001(jim) gid=1001(jim) groups=1001(jim),0(wheel),5(operator),14(ftp),920(vboxusers)

-lオプションを使用すると、ログイン全体(ページsuごと)をシミュレートします。man

ただし、上記の操作を実行するにはmikeパスワードを知る必要があります。アクセス権があれば、sudoパスワードなしでログインできますmike

13:27:37 /home/jim> sudo su -l mike
Password:(I type my own password, because this is sudo asking)
13:27:41 /home/mike>

要約すると、実行可能ファイルの権限がsu表示されているのと同じsu理由一般ツールシステムのすべてのユーザーが使用できます。

答え2

歴史的に(GNUではないユニークでは)そうでなかったか、少なくとも「wheel」というグループに属し、許可されていることを手動で確認しましたsusu当時のアクセス制御に関するRMSのアイデアのため、GNUバージョンはそうではありませんでした。やり直しこの機能は次のとおりです。

Why GNU `su' does not support the `wheel' group
===============================================

   (This section is by Richard Stallman.)

   Sometimes a few of the users try to hold total power over all the
rest.  For example, in 1984, a few users at the MIT AI lab decided to
seize power by changing the operator password on the Twenex system and
keeping it secret from everyone else.  (I was able to thwart this coup
and give power back to the users by patching the kernel, but I wouldn't
know how to do that in Unix.)

   However, occasionally the rulers do tell someone.  Under the usual
`su' mechanism, once someone learns the root password who sympathizes
with the ordinary users, he or she can tell the rest.  The "wheel
group" feature would make this impossible, and thus cement the power of
the rulers.

   I'm on the side of the masses, not that of the rulers.  If you are
used to supporting the bosses and sysadmins in whatever they do, you
might find this idea strange at first.

これについての詳細は、「wheel group rms」などを検索して見つけることができます。

答え3

ただし、権限がsuあるため-rwsr-xr-x、ルートパスワードを無差別に代入する試みを防ぐことはできません。

はい。一般的なLinuxシステムを想定すると、pam_unix.soモジュールは失敗した認証の試行を約2秒遅らせますが、同時試行を防ぐことはできないと思います。

失敗した試みはもちろん記録されます。

Aug 16 22:52:33 somehost su[17387]: FAILED su for root by ilkkachu

パスワードを監視するシステムがある場合は、無差別パスワードクラッキングをログに目立つように表示する必要があります。信頼できないローカルユーザーがいる場合は、これを行う必要があります。ローカル専用特権の昇格の脆弱性は、信頼できないローカルユーザーが試す可能性があり、リモート特権の昇格よりも一般的です。

私をさらに混乱させることは、それがうまくいかないようです。

もちろん便利です。rootパスワードを知っていればレベルを上げることができます。

su何もせずにただ走ることができますが、sudo su不便ではありません。

sudo su少し重複しています。他のユーザーとしてプログラムを実行できるように設計された2つのプログラムを使用する必要はありません。 1つだけで十分です。シェルを実行するには、sudo -ior sudo -s(またはなど)を使用してください。sudo /bin/bash

私は何かを見落としましたか?世界がsuを処刑することを許したのは歴史的な理由だけです。

探す。まあ、すべてのシステムにsudo代替があるわけではなく、あなたがこれを歴史的だと思うかもしれません。

この権限を削除すると、まだ経験していない欠点はありますか?

実際ではありません。私が知っているわけではありません。私考える一部のシステムは、su特定のグループ(" wheel")のメンバーのみを実行できるように設定されています。sudo必要に応じてこれを行うこともできます(chown root.sudousers /usr/bin/sudo && chmod 4710 /usr/bin/sudo)。

または、必要でない場合は、1 つまたは両方のプログラムを削除できます。しかし、Debianではパッケージに付属しているので、パッケージ全体を削除するのはおそらく良い考えではありませんsulogin(こうしてペアをなしてlogin一緒suにいるのは少し歴史的なようです。)

答え4

suは、誰でも実行できるように、世界中で実行可能でなければなりません。多くのシステムでパスワードを提供し、他のユーザーに変更するために使用できます。

誰かがルートパスワードを無差別に代入することを心配している場合は、この機能を無効にできます。 (ハッシュを無効にするため、指定されたパスワードと一致できません)

合意があるかどうかはわかりませんが、rootとして直接ログインできること自体がセキュリティ上の問題だと思います。

関連情報