Linuxのsudoコマンドを使うことで、スーパーユーザーや別のユーザーの権限で特定のコマンドを実行することができます。
Linuxはマルチユーザーのシステムで、各ユーザーは自分の権限の範囲内でコマンドを実行することができます。そのようなときに便利なのが、sudoコマンドです。
sudoコマンドの使い方
sudoコマンドの書式は以下の通りです。
1 |
sudo [オプション] コマンド名 |
オプション
-l | 実行ユーザーに許可されているコマンドの一覧を表示する |
-u | root以外のユーザーとしてコマンドを実行するときに指定します |
-s | 環境変数SHELLで指定されたシェルを実行する |
-b | 指定したコマンドをバックグランドで実行する |
-S | 標準入力からパスワードを読み込みます |
sudoコマンドは、デフォルトではroot権限で実行するようになっており、root権限以外で使用する場合はオプションを使用してユーザーを指定する必要があります。
また、/etc/sudoersファイルにはsudoコマンドで実行できるユーザーやコマンドなど、詳細な指定ができます。このファイルを編集する場合は、visudoコマンドを使用して編集します。
スーパーユーザーでコマンドを実行
sudoコマンドを実行すると実行ユーザーのパスワードの入力が求められます。そのため実行にはスーパーユーザー(root)のパスワードは必要ありません。
1 2 |
$ sudo reboot Password: |
この例では一般ユーザーがsudoコマンドを使用して、マシンの再起動を行います。このようにsudoコマンドを使うことで本来はスーパーユーザーにしか許可されていないコマンドを実行できるようになります。
指定ユーザーでコマンドを実行
指定したユーザーでコマンドを実行する場合は、「-u」オプションの後にユーザー名を指定します。
1 2 |
$ sudo -u hoge cat sample.txt Password: |
この例では「hoge」というユーザーでcatコマンドを実行します。このときもパスワードは実行ユーザーのものを入力します。