【sudo】Linuxで指定したユーザーでコマンドを実行する

Linuxのsudoコマンドを使うことで、スーパーユーザーや別のユーザーの権限で特定のコマンドを実行することができます。

Linuxはマルチユーザーのシステムで、各ユーザーは自分の権限の範囲内でコマンドを実行することができます。そのようなときに便利なのが、sudoコマンドです。

sudoコマンドの使い方

sudoコマンドの書式は以下の通りです。

sudo [オプション] コマンド名

オプション

-l 実行ユーザーに許可されているコマンドの一覧を表示する
-u root以外のユーザーとしてコマンドを実行するときに指定します
-s 環境変数SHELLで指定されたシェルを実行する
-b 指定したコマンドをバックグランドで実行する
-S 標準入力からパスワードを読み込みます

sudoコマンドは、デフォルトではroot権限で実行するようになっており、root権限以外で使用する場合はオプションを使用してユーザーを指定する必要があります。

また、/etc/sudoersファイルにはsudoコマンドで実行できるユーザーやコマンドなど、詳細な指定ができます。このファイルを編集する場合は、visudoコマンドを使用して編集します。

スーパーユーザーでコマンドを実行

sudoコマンドを実行すると実行ユーザーのパスワードの入力が求められます。そのため実行にはスーパーユーザー(root)のパスワードは必要ありません。

$ sudo reboot
Password:

この例では一般ユーザーがsudoコマンドを使用して、マシンの再起動を行います。このようにsudoコマンドを使うことで本来はスーパーユーザーにしか許可されていないコマンドを実行できるようになります。

指定ユーザーでコマンドを実行

指定したユーザーでコマンドを実行する場合は、「-u」オプションの後にユーザー名を指定します。

$ sudo -u hoge cat sample.txt
Password:

この例では「hoge」というユーザーでcatコマンドを実行します。このときもパスワードは実行ユーザーのものを入力します。


イベント