sudoはどのように使用されるのですか?


24

sudo以前に設定を試しましたが、あまり運がありませんでした。とはどう違いsu -l -c "x"ますか?構成ファイルを介して、ユーザーが特定のコマンドなどにのみアクセスできるようにすることができます。私は常にsudo、コマンドを別のユーザーまたはグループとして1行に並べる方法と考えていました。UbuntuやMintのようなディストリビューションでは、パスワードを介してメインユーザーに簡単にrootにアクセスできるようにすることで簡単になっているため、その用途が実際にはわからない。

rootで特定のコマンドのみを実行する権限をユーザーに付与して、sudoファイルにユーザーを追加するにはどうすればよいですか?また、セキュリティホールを開けたくありません。

回答:


16

rootとしてコマンドを実行する基本操作の場合、sudoとsuの最も顕著な違いは、sudoには呼び出しユーザーのパスワード(つまりパスワード)が必要であるのに対し、suにはターゲットユーザーのパスワード(つまりrootパスワード)が必要なことです。セキュリティへの影響については、前の質問で広範囲に議論されています。ルート権限を取得する最も安全な方法はどれですか:sudo、su、またはlogin?

sudoにはsu以外の追加機能があります。特に、ユーザーのパスワードを取得したら、そのユーザーとして任意のコマンドを実行できます。一方、sudoは、呼び出したユーザーが特定のコマンドを他のユーザーとしてのみ実行できるように構成できます。これは、sudoが認証を必要としないために可能です(おそらく、パスワードを入力して本人であることを確認する以外は、タスクのユーザー認証とは微妙に異なります)。

visudorootとしてコマンドを実行して、sudo構成を変更します(構成を直接編集しないでください)。環境変数EDITORまたはVISUALお気に入りのエディターに設定されていることを確認してください。そうでないと、なじみのないエディターが表示される場合があります。sudoersmanページには、ビット簡潔ですが、例があります。ユーザーbob/bin/foo(任意の数の引数を使用して)および/bin/bar --safe(他の引数をroot使用せずに)を実行できるようにするには、次の行を使用します。

bob ALL = (root) /bin/foo
bob ALL = (root) /bin/bar --safe

2
sudoは素晴らしい発明です
-tshepang

1
sudoがrootパスワードを必要とするか、rootパスワードを必要とするかは、構成によって異なります。どちらの方法でも設定できます。
ジョナサンMデイビス

3
@Tshepang Amen、兄弟。ルートパスワードをリリースして、サポート技術者にSUの方法について説明し、/ anything /を行わない場合はapache2ctl graceful、手首を切り裂いてやり直したいと思います。
シャドゥール

6

最大の違いは、とsudo同じようにrootとしてコマンドを実行するためにrootパスワードが必要ないことですsusudoersファイルに誰かを追加するにはrootパスワードが必要ですが、その後、そのユーザーは、追加のパスワードを要求することなく、rootとして全部または一部(制限されている場合)を実行できます。

もう1つの違いは、既に述べたように、sudo実行できるコマンドを正確に制御できることです。

sudoersファイルの実行形式の詳細については、を実行してくださいman sudoers。特定のコマンドのみをrootとして実行できるようにする例があります。各行の基本構造は次のとおりです。

user_list host_list = cmd_list

cmd_listには、実際のユーザーが切り替えることができるユーザーの詳細を含めることができます。たとえば、Webマスターがwwwrootに切り替えて、apacheを再起動できるようにすることはできますが、rootにはできません。また、切り替える前にユーザーのパスワードが必要かどうかなど、他のオプションを含めることもできます(これがデフォルトです)。

例の行は次のとおりです。

joe  ALL=(ALL) ALL

つまり、すべてのホストですべてのユーザーとしてjoeにコマンドを実行させます。よりタイトなラインは次のとおりです。

joe  ALL=(operator) /usr/local/ops/

つまり、joeに/ usr / local / opsディレクトリ内のコマンドをユーザー「operator」として実行させます。

sudoersのmanページの最後には多くの例があります。

/etc/sudoersコマンドで編集する必要がありますvisudo。これにより、ファイルが正当であることを確認し、誤ってファイルが破損することを防ぎます。


sudoを使用するときにパスワードが必要かどうかは、sudoersファイルの設定方法に完全に依存します。パスワードを要求するようにセットアップすることも、パスワードを要求しないようにセットアップすることもできます。
ジョナサンMデイビス

メインの/ etc / sudoersファイルを変更しないようにするための追加の一般的な方法は、IDSが監視し、そのフォーマットが1日を台無しにする可能性があるためです。/etc/sudoers.dで別のファイルとしてsudoスニペットを使用します。ユーザーにホイールグループを使用すると、任意のコマンドが許可されます。
bbaassssiiii

2

他の回答に加えて、sudoはロギング機能を提供するため、実行されたコマンドと実行者を追跡できます。sudoアクセスを取得する悪意のあるユーザーがログを消去できるため、これはセキュリティ目的ではありません。ただし、先週の午前2時にあなたや他の管理者が何をしたかを正確に把握することは非常に便利です。


3
sudoはsyslogのログ記録をサポートしているため、セキュリティに関係する主要なセットアップでは、システムが危険にさらされた場合にログに影響を与えないように、別のリモートマシンに記録するように設定されます。
アローマスター

追加のみのファイル属性は、少しチャットするのに役立つ場合があります+ a / var / log / secure
bbaassssiiee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.