Linux(UNIX) sudo コマンド
sudo コマンド
sudoコマンドは、ユーザー切り替えを行うことなく、スーパーユーザー(rootユーザー)や他のユーザーの権限でコマンドやシェルの実行、ファイルの編集・実行に使用します。読みは公式で”soo-doo”とされています。sudoコマンドを実行するためには「sudoers」ファイルの設定が必要です。「sudoers」ファイルの編集には「visudo」コマンドを使用して編集を行います。一度ユーザが認証されるとタイムスタンプが更新されるため、一定時間内(約5分ほど)であれば、2回目以降はパスワード入力は省略しsudoコマンドを使用できます。認証情報を破棄したい場合は「sudo -K」実行します。「-k」オプションを指定すると、必ずパスワードを入力してから実行するように変更する事もできます。また、sudoは成功・失敗した命令やエラーをデフォルトで「syslog」にログを記録します。
sudo [オプション] [ユーザー名]
sudo コマンド オプション
-a (authentication type) | sudoコマンドはユーザの認証に「/etc/login.conf」で許可されている認証タイプを使用します。 |
-n | パスワードを要求するプロンプトを表示しません。パスワード入力が必要なコマンドの場合はエラーとなって実行できません。 |
-p | パスワード入力時のプロンプトを指定します。(デフォルト「:」) |
-S (stdin) | パスワードを端末ではなく標準入力から読み込みます。(パスワードの末尾には改行が必要となります。) |
-k (kill) | 保存された認証情報(タイムスタンプ)を無効にします。次回のsudoコマンド実行時には必ずパスワード入力が必要となります。コマンドと一緒に使用可能です。 |
-K (sure kill) | 保存された認証情報(タイムスタンプ)を完全に消去します。 |
-v(validate) | 保存された認証情報(タイムスタンプ)を更新します。 |
-u [ユーザー] | コマンドを実行するときのユーザーを「ユーザー名」または「ユーザーID(#記号と数字)」で指定できます。 |
-g [グループ] | コマンドを実行するときのグループを「グループ名」または「グループID(#記号と数字)」で指定します。 |
-P (preserve group vector) | sudoコマンドを実行するユーザーが所属するグループのまま変更せずにコマンドを実行します。 |
-b (background) | 指定されたコマンドをバックグラウンドで実行します。 |
-e | 指定したファイルを編集します。 |
-E | 現在の環境変数を保持したままコマンドを実行します。 |
-H (home) | 環境変数「HOME」をrootユーザーのホームディレクトリに変更してコマンドを実行します。 |
-h (help) | 使用法のヘルプメッセージを表示します。 |
-s (shell) | 環境変数「SHELL」で設定されたシェルもしくはrootユーザーのシェルが実行されます。コマンドを指定しなかった場合は対話シェルとなります。 |
-i [コマンド] | rootユーザーのデフォルトのシェルが実行されます。コマンドを指定しなかった場合は対話シェルとなります。 |
-l (list) | sudoを実行するユーザーに許可・禁止されているコマンドを一覧表示します。「sudo -l コマンド」のようにコマンドを指定した場合、コマンドが許可されていればコマンドの絶対パスが表示されます。 |
-ll | 「-l」オプションと同様ですがより長い形式で表示されます。 |
-U [ユーザー] | 「-l」オプションと組み合わせて使用します。指定したユーザーの権限で実行できるコマンドを一覧表示します。 |
-- | sudoコマンドがコマンドライン引数の処理を終了します。 |
類似コマンド su コマンド
suコマンドは、ユーザーを切り替える際に使用します。sudoコマンドとは異なり、ユーザー切り替えとともに切り替え先のユーザーの権限でコマンドやシェルを実行したい場合に使用します。引数を指定せずに実行することで、スーパーユーザー(rootユーザー)に切り替えることもできます。sudoコマンドにおける「sudo -s」と類似動作となります。ログインし直さずに他のユーザーに切り替えることができます。sudoコマンドの場合は、rootユーザーのパスワードは不要ですが、suコマンドを実行するとパスワードの入力が求められるので、「変更先のユーザーのパスワード」を入力します。suコマンド実行以降は、全てのコマンドが変更後のユーザーとして実行されます。
su [オプション] [ユーザー名]
類似コマンド sudoedit コマンド
sudoeditコマンドでは、rootユーザーの権限でファイルを編集することができます。sudoコマンドにおける「sudo -e [ファイル名]」と同じ動作になります。ファイルは複数指定も可能で、指定ファイルが存在しなかった場合には所有者rootの新規ファイルが作成されます。
sudoedit [ファイル名]