Sudo
コマンドを使用して、スーパー/別のユーザーとしてコマンド/スクリプトを実行できることを認識しています。しかし、Sudo
ユーティリティ自体がユーザーによって利用できない/削除される可能性はありますか?もしそうなら、Sudo
以外のsu
に代わるものは何でしょうか?また、Sudo
とsu
は同じ目的を果たしますか?
「Sudo」を使用すると、任意のプログラムを任意のユーザーとして起動できます。プログラム自体がこれを行うためにroot権限を必要とするため、これは「setuidroot」です。 Sudoの力は、誰が何をできるかを簡単に構成できることです。ユーザーがSudoを使用してnmap(およびnmapのみ)を実行できるようにすることができます。
「su」を使用すると、任意のユーザーとしてシェルを起動できます。シェルを起動すると、明らかに他のプログラムを起動できます。したがって、より危険です。適切に管理されたシステムでは、su
アクセスは通常無効になっていますが、Sudo
は個別のプログラムで使用できる場合があります。
上記の2つのプログラムが使用される理由は、説明責任です。 Sudoは、行われたすべての要求をログに記録します。したがって、管理者は、root権限を使用してユーザーが行ったことを追跡するのは非常に簡単です。シェルへのアクセスを許可すると、ユーザーは好きなことを行うことができます(これは「ブラックホール」です)。 (もちろん、カーネルレベルでの高度なロギングはこれを阻止します)。
もちろん、これらのプログラムにはsetuid
のマークを付けることもできます。これにより、実行時にバイナリの所有者へのアクセス許可が変更されます。たとえば、setuid
ビットをアクティブ化できた場合/bin/bash
および/bin/bash
の所有者をroot
に設定すると、/bin/bash
を実行するたびにrootになります。
最後に、マシンへの物理的なアクセスにより、好きなことを行うことができます。フラッシュドライブから起動して、ローカルファイルシステムにアクセスできます。別のinit
プロセスを使用するようにブートローダーを構成して、シェルをシングルユーザーモードで(パスワードを要求せずに)すぐに起動することもできます。
Su以外にSudoの代替が存在するかどうかという質問には誰も答えていないようです。したがって、SudoのWebサイトが実際にSudoの代替のリストを保持していることを知りたいと思うかもしれません。
このリストには、オープンソースソフトウェアと商用ソフトウェアの両方が含まれています。現在リストされているオープンソースのSudoの代替案は次のとおりです。
つまり、私はこれらの代替手段を使用したことはなく、他のコンテキストでそれらを見たり聞いたりしたこともありません。また、これらの少なくともいくつかは実験的であるか、機能していないか、そうでなければサポートされていないようです。私が得た印象は、Sudo
とsu
が町で唯一の本物のゲームであるということです。
Rootとしてログインするか(ttyで許可されている場合)、コンピューターを再起動し、コマンドラインでinit =/bin/bashを使用してログインし、必要な機能を復元します。
RootだけがSudoを削除できることを指摘します。
Sudoとsuは、似ていますが異なる目的を果たします。 「sudo」を使用すると、他のユーザーの権限で何かを実行できます。「su」を使用すると、そのユーザーに「なり」、そのユーザーのように振る舞うことができます。
マシンにopenssh-server
がインストールされている場合、Sudo
の代わりに次のようになります。
ssh root@localhost ..command.. ..goes.. ..here..
無効になっていない場合は、次のようにsu
があります。
su - root -c "..command.. ..goes.. ..here.."