Linux

【Linux】sudoコマンドの使い方を解説!管理者権限でコマンドを実行してみよう

こんにちは、フルスタックエンジニアのryuです。

今回の記事では、sudoコマンドの使い方を解説します。Linuxの一般ユーザーで、管理者権限が必要なコマンドを実行する際はsudoコマンドを使用します。今回はsudoコマンドの使い方やオプションなどを詳しく解説します。

【Linux】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コマンドのオプション

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の確認

sudoersファイルで設定したshutdownは実行できることが確認できます。

 sudo shutdown.

このように、sudoersファイルを使用すれば、ユーザーやグループによって実行出来るコマンドを設定することができます。

sudoコマンドの使い方まとめ

今回の記事では、sudoコマンドの使い方を解説しました。まとめると以下の通りです。

  • sudoコマンドで管理者として実行
  • sudoersファイルで実行できるコマンドを設定

sudoコマンドとsudoersファイルは良く使うので覚えておきましょう!

このようなITに関連する内容を当ブログでは、発信しているので興味のある方は、是非ご覧ください。

さらにlinuxについて勉強したい方はこちらの参考書がオススメです。

About me
大手メーカのIT部門→上場ベンチャーでインフラエンジニアやってます。エンジニア歴は8年目。 サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。 AI、ARも勉強中です! youtubeでも技術ネタを発信していきます。↓のアイコンよりご覧ください!