こんにちは、フルスタックエンジニアのryuです。
今回の記事では、sudoコマンドの使い方を解説します。Linuxの一般ユーザーで、管理者権限が必要なコマンドを実行する際はsudoコマンドを使用します。今回はsudoコマンドの使い方やオプションなどを詳しく解説します。
目次
sudoコマンドの使い方解説!
sudoコマンドの使い方は?
今回の記事では、sudoコマンドの使い方を解説します。sudoコマンドは一般ユーザが管理者権限が必要なコマンドを実行するときに使用するコマンドです。
一般ユーザーにrootユーザーのパスワードを知らせる必要が無いため、セキュリティ向上になります。
では、sudoコマンドをLinuxで使ってみましょう。
sudoコマンドを使って管理者権限で実行する
まず、userなどの一般ユーザでログインした状態で”apt-get”コマンドなど、管理者権限が必要なコマンドを実行します。

すると、以下のようなエラーが出ます。これは、管理者権限が無いため、実行が拒否されます。
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
一般ユーザーが管理者権限を使って、コマンドを実行するためには”sudo”を使用します。使い方は以下の通りです。
sudo apt-get install bind9
sudo [実行コマンド]
コマンドを入力すると、userのパスワードの入力が求められるので、入力して実行します。

パスワードを入力すると、管理者権限でコマンドは実行されます。
sudoコマンドのオプション
sudoコマンドには、以下のようなオプションがあります。
-l | 許可されているコマンドを表示 |
-i | 変更先ユーザーでシェルを起動する(ログイン時の処理を実行) |
-s | 変更先ユーザーでシェルを起動する |
“-l”オプションを使用すると、許可されているコマンドが表示されます。
sudo -l
→User user may run the following commands on DESKTOP-EOJNUFD:
(ALL : ALL) ALL
現状は、userはすべてのコマンドが許可されています。これは、セキュリティ上良くないので、設定ファイルを編集してsudoコマンドが使えるコマンドを設定します。
sudoコマンドが使えるコマンドを設定する
現状sudoコマンドを使うと、全てのコマンドを実行することができます。これでは、セキュリティ上良くありません。
そこで、sudoコマンドが使えるコマンドを設定して、実行できるコマンドを制限します。
sudoersファイルの設定
sudoコマンドが使えるコマンドを設定する場合は、”sudoers”ファイルに設定を行います。これは管理者で設定を行いましょう。
vi /etc/sudoers
ファイルの中に以下のような設定があります。これは、sudoを実行できるコマンドにすべてのコマンドが使えるように設定されています。
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
例えば、userにshutdownコマンドが実行できるように設定してみましょう。
//文法 ユーザー名 ホスト名=(実行ユーザー名) コマンド
user ALL=(ALL) /sbin/shutdown
//↓これはコメントアウト
#%sudo ALL=(ALL:ALL) ALL
ホスト名と実行ユーザーの部分は”ALL”を設定しましょう。これでuserは、sudoを使っても”shutdown”コマンドしか使用できません。”%sudo ~”はsudoを実行できるグループでは全て許可するので、コメントアウトしておきましょう。最後にsudoを再起動して確認しましょう。
/etc/init.d/sudo restart
sudoコマンドで確認する
最後にsudoコマンドで実際に確認してみましょう。userでログインします。そして、先ほど実行できたapt-getコマンドを実行してみます。
すると、実行が拒否されます。
sudo apt-get install bind9
→Sorry, user user is not allowed to execute '/usr/bin/apt-get install bind9'
as root on DESKTOP-EOJNUFD.localdomain.

実行が拒否されることを確認したら、次は許可されたコマンドを実行してみましょう。sudoersファイルで設定したshutdownは実行できることができます。
sudo shutdown
コマンドが正常に実行されると思います。
このように、sudoersファイルを使用すれば、ユーザーやグループによって実行出来るコマンドを設定することができます。
sudoコマンドの使い方まとめ
今回の記事では、sudoコマンドの使い方を解説しました。まとめると以下の通りです。
- sudoコマンドで管理者として実行
- sudoersファイルで実行できるコマンドを設定
sudoコマンドとsudoersファイルは良く使うので覚えておきましょう!
このようなITに関連する内容を当ブログでは、発信しているので興味のある方は、是非ご覧ください。
さらにlinuxについて勉強したい方はこちらの参考書がオススメです。