web-dev-qa-db-ja.com

sudoの代替

Sudoコマンドを使用して、スーパー/別のユーザーとしてコマンド/スクリプトを実行できることを認識しています。しかし、Sudoユーティリティ自体がユーザーによって利用できない/削除される可能性はありますか?もしそうなら、Sudo以外のsuに代わるものは何でしょうか?また、Sudosuは同じ目的を果たしますか?

2
AlwaysALearner

「Sudo」を使用すると、任意のプログラムを任意のユーザーとして起動できます。プログラム自体がこれを行うためにroot権限を必要とするため、これは「setuidroot」です。 Sudoの力は、誰が何をできるかを簡単に構成できることです。ユーザーがSudoを使用してnmap(およびnmapのみ)を実行できるようにすることができます。

「su」を使用すると、任意のユーザーとしてシェルを起動できます。シェルを起動すると、明らかに他のプログラムを起動できます。したがって、より危険です。適切に管理されたシステムでは、suアクセスは通常無効になっていますが、Sudoは個別のプログラムで使用できる場合があります。

上記の2つのプログラムが使用される理由は、説明責任です。 Sudoは、行われたすべての要求をログに記録します。したがって、管理者は、root権限を使用してユーザーが行ったことを追跡するのは非常に簡単です。シェルへのアクセスを許可すると、ユーザーは好きなことを行うことができます(これは「ブラックホール」です)。 (もちろん、カーネルレベルでの高度なロギングはこれを阻止します)。

もちろん、これらのプログラムにはsetuidのマークを付けることもできます。これにより、実行時にバイナリの所有者へのアクセス許可が変更されます。たとえば、setuidビットをアクティブ化できた場合/bin/bashおよび/bin/bashの所有者をrootに設定すると、/bin/bashを実行するたびにrootになります。

最後に、マシンへの物理的なアクセスにより、好きなことを行うことができます。フラッシュドライブから起動して、ローカルファイルシステムにアクセスできます。別のinitプロセスを使用するようにブートローダーを構成して、シェルをシングルユーザーモードで(パスワードを要求せずに)すぐに起動することもできます。

7
parasietje

Su以外にSudoの代替が存在するかどうかという質問には誰も答えていないようです。したがって、SudoのWebサイトが実際にSudoの代替のリストを保持していることを知りたいと思うかもしれません。

http://www.Sudo.ws/other.html

このリストには、オープンソースソフトウェアと商用ソフトウェアの両方が含まれています。現在リストされているオープンソースのSudoの代替案は次のとおりです。

つまり、私はこれらの代替手段を使用したことはなく、他のコンテキストでそれらを見たり聞いたりしたこともありません。また、これらの少なくともいくつかは実験的であるか、機能していないか、そうでなければサポートされていないようです。私が得た印象は、Sudosuが町で唯一の本物のゲームであるということです。

6
igal

Rootとしてログインするか(ttyで許可されている場合)、コンピューターを再起動し、コマンドラインでinit =/bin/bashを使用してログインし、必要な機能を復元します。

RootだけがSudoを削除できることを指摘します。

Sudoとsuは、似ていますが異なる目的を果たします。 「sudo」を使用すると、他のユーザーの権限で何かを実行できます。「su」を使用すると、そのユーザーに「なり」、そのユーザーのように振る舞うことができます。

2
davidgo

マシンにopenssh-serverがインストールされている場合、Sudoの代わりに次のようになります。

ssh root@localhost ..command.. ..goes.. ..here..

無効になっていない場合は、次のようにsuがあります。

su - root -c "..command.. ..goes.. ..here.."
1
joeytwiddle