Linuxではユーザーを切り替えなくても、他のユーザーの権限でコマンドやシェルを実行できる「sudo」コマンドがあります。
ここでは「sudo」コマンドの使い方について、以下の内容で解説していきます。
この記事で「sudo」コマンドで別のユーザーでコマンドなどを実行する方法についてわかりやすく解説していますので、ぜひ使い方を覚えておきましょう!
sudoコマンドとは
「sudo」はユーザーを切り替えずに他のユーザーやスーパーユーザーの権限で、以下のような操作が可能になります。
・シェルを実行できる
・ファイルの編集、実行ができる
わざわざユーザーを切り替えずに、他のユーザーの権限で操作が可能ですので非常に便利です。
「sudo」コマンドの書式は以下になります。
$ sudo [オプション]
また、類似コマンドとしてはユーザーを切り替えて操作できる「su」コマンドがあります。
「su」コマンドについては以下の記事で詳しく解説しています!
sudoコマンドのオプション
「sudo」コマンドで使用できる主なオプションは以下となります。
オプション | 説明 |
---|---|
-b | バックグラウンドで実行する |
-l | 禁止されているコマンドを表示する |
-g | コマンド実行時グループ名を指定する |
-s | ルートユーザーを保持する |
-S | 標準入力でパスワードを読み込む |
-u | コマンド実行時にユーザー名またはユーザーIDを指定する |
sudoコマンドの詳しい使い方
ここではsudoコマンドの詳しい使い方について解説します。
禁止されているコマンドを表示する
「sudo」で禁止されているコマンドをを確認するには「-l」オプションを使用します。
$ sudo -l
ルート権限でファイルの編集
通常重要なファイルは、スーパーユーザーでルート権限に切り替えないと編集することができませんが「sudo」コマンドを使用することで編集が可能です。
以下では「sudo」で「/etc/hosts」ファイルを編集しています。
$ sudo vi /etc/hosts
通常のユーザーでは書き込みの権限がありませんが、「sudo」コマンドにより編集することができました!
ルート権限でコマンドの実行
スーパーユーザーでのみ実行できる「shutdown」「reboot」なども「sudo」コマンドで実行することができます。
$ sudo reboot
指定したユーザーでコマンドを実行する
指定したユーザーでコマンドを実行するには「-u」オプションを使用します。
他のユーザーで実行する場合の書式は以下となります。
$ sudo -u ユーザー名 コマンド
以下ではユーザー「samurai」を指定してコマンドを実行しています。
$ sudo -u samurai cat /etc/passwd
ルートユーザーを保持する
連続してルートユーザーで操作したい場合は「-s」オプションを使用します。
「-s」オプションを使用すると、「exit」コマンドを実行するまでルートユーザーの権限が保持された状態になります。
$ sudo -s
ルート権限になるとプロンプトの「$」が「#」に置き換わります。
Linuxについてもっと知りたい方へ
そもそもLinuxについて、
「実はなんとなくしか理解していない…」
「Linuxを効率よく学習する方法が知りたい」
といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!
まとめ
ここでは、ユーザーを切り替えてコマンドを実行できる「sudo」コマンドついて、
- sudoコマンドとは
- sudoコマンドのオプション
- sudoコマンドの詳しい使い方
などについて解説しました。
「sudo」コマンドを使用すれば「su」コマンドでユーザーを切り替えることなく他のユーザーやスーパーユーザーの権限で操作が可能ですので非常に便利です。
もし、「sudo」コマンドについて忘れてしまったら、この記事を参考にしてくださいね!