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

Linuxではユーザーを切り替えなくても、他のユーザーの権限でコマンドやシェルを実行できる「sudo」コマンドがあります。

ここでは「sudo」コマンドの使い方について、以下の内容で解説していきます。

sudo_image

この記事で「sudo」コマンドで別のユーザーでコマンドなどを実行する方法についてわかりやすく解説していますので、ぜひ使い方を覚えておきましょう!

目次

sudoコマンドとは

「sudo」はユーザーを切り替えずに他のユーザーやスーパーユーザーの権限で、以下のような操作が可能になります。

・コマンドを実行できる
・シェルを実行できる
・ファイルの編集、実行ができる

わざわざユーザーを切り替えずに、他のユーザーの権限で操作が可能ですので非常に便利です。

「sudo」コマンドの書式は以下になります。

$ sudo [オプション]

また、類似コマンドとしてはユーザーを切り替えて操作できる「su」コマンドがあります。

「su」コマンドについては以下の記事で詳しく解説しています!

sudoコマンドのオプション

「sudo」コマンドで使用できる主なオプションは以下となります。

オプション説明
-bバックグラウンドで実行する
-l禁止されているコマンドを表示する
-gコマンド実行時グループ名を指定する
-sルートユーザーを保持する
-S標準入力でパスワードを読み込む
-uコマンド実行時にユーザー名またはユーザーIDを指定する

sudoコマンドの詳しい使い方

ここではsudoコマンドの詳しい使い方について解説します。

禁止されているコマンドを表示する

「sudo」で禁止されているコマンドをを確認するには「-l」オプションを使用します。

$ sudo -l

sudo_image01

ルート権限でファイルの編集

通常重要なファイルは、スーパーユーザーでルート権限に切り替えないと編集することができませんが「sudo」コマンドを使用することで編集が可能です。

以下では「sudo」で「/etc/hosts」ファイルを編集しています。

$ sudo vi /etc/hosts

sudo_image02

通常のユーザーでは書き込みの権限がありませんが、「sudo」コマンドにより編集することができました!

ルート権限でコマンドの実行

スーパーユーザーでのみ実行できる「shutdown」「reboot」なども「sudo」コマンドで実行することができます。

$ sudo reboot

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

指定したユーザーでコマンドを実行するには「-u」オプションを使用します。

他のユーザーで実行する場合の書式は以下となります。

$ sudo -u ユーザー名 コマンド

以下ではユーザー「samurai」を指定してコマンドを実行しています。

$ sudo -u samurai cat /etc/passwd

ルートユーザーを保持する

連続してルートユーザーで操作したい場合は「-s」オプションを使用します。

「-s」オプションを使用すると、「exit」コマンドを実行するまでルートユーザーの権限が保持された状態になります。

$ sudo -s

sudo_image03

ルート権限になるとプロンプトの「$」が「#」に置き換わります。

Linuxについてもっと知りたい方へ

そもそもLinuxについて、

「実はなんとなくしか理解していない…」
「Linuxを効率よく学習する方法が知りたい」

といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!



まとめ

ここでは、ユーザーを切り替えてコマンドを実行できる「sudo」コマンドついて、

  • sudoコマンドとは
  • sudoコマンドのオプション
  • sudoコマンドの詳しい使い方

などについて解説しました。

「sudo」コマンドを使用すれば「su」コマンドでユーザーを切り替えることなく他のユーザーやスーパーユーザーの権限で操作が可能ですので非常に便利です。

もし、「sudo」コマンドについて忘れてしまったら、この記事を参考にしてくださいね!

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次