sudoコマンドの基本を徹底解説|構成やオプションの実例付き

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2022年9月)

✔このような方へ向けて書かれた記事となります

「sudoコマンドって何?」

「sudoコマンドってどうやって使うの?」

「sudoコマンドでできることって変えられるの?」

✔当記事を通じてお伝えすること

  • sudoコマンドの基礎知識
  • sudoコマンドの使い方
  • sudoコマンドのオプション一覧

当記事では、sudoコマンドの基礎知識や使い方だけでなく、オプションの一覧など必要なこと全てをご紹介します。

ぜひ最後までご覧ください。

created by Rinker
¥2,970 (2024/12/12 01:22:45時点 楽天市場調べ-詳細)
LINUXコマンドを極めよう!

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

sudoコマンドの基礎知識

sudoコマンドの基本的な知識を見ていきましょう。

概要を理解すれば充分です。

  • sudoコマンドとは?
  • sudoコマンドの設定ファイルについて
  • 管理者「root」にユーザー変更する方法

sudoコマンドとは?

sudoコマンドは、管理者や別ユーザーの権限で、ターミナル上のコマンドを実行するものです。

一般的には、管理者権限で実行するために使われることが多いです。

たとえばアップデートのコマンド「apt update」を通常のユーザーで実行すると以下のとおりエラーとなります。

$ apt update
パッケージリストを読み込んでいます... 完了
E: ロックファイル /var/lib/apt/lists/lock をオープンできません - open (13: 許可がありません)
E: ディレクトリ /var/lib/apt/lists/ をロックできません
W: ファイル /var/cache/apt/pkgcache.bin の削除中に問題が発生しました - RemoveCaches (13: 許可がありません)
W: ファイル /var/cache/apt/srcpkgcache.bin の削除中に問題が発生しました - RemoveCaches (13: 許可がありません)

sudo(管理者権限)で実行すれば、エラーは起きません。

sudo apt update
[sudo] yulikepython のパスワード: 
ヒット:1 http://archive.ubuntulinux.jp/ubuntu focal InRelease
ヒット:2 http://archive.ubuntulinux.jp/ubuntu-ja-non-free focal InRelease      
ヒット:3 http://packages.microsoft.com/repos/code stable InRelease             
ヒット:4 https://dl.google.com/linux/chrome/deb stable InRelease               
ヒット:5 http://jp.archive.ubuntu.com/ubuntu focal InRelease                   
取得:6 http://jp.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]    
取得:7 http://jp.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]  
取得:8 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]     
ヒット:9 http://ppa.launchpad.net/obsproject/obs-studio/ubuntu focal InRelease 
取得:10 http://jp.archive.ubuntu.com/ubuntu focal-updates/main amd64 DEP-11 Metadata [278 kB]
取得:11 http://jp.archive.ubuntu.com/ubuntu focal-updates/universe amd64 DEP-11 Metadata [391 kB]
取得:12 http://jp.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 DEP-11 Metadata [944 B]
取得:13 http://jp.archive.ubuntu.com/ubuntu focal-backports/main amd64 DEP-11 Metadata [7,996 B]
取得:14 http://jp.archive.ubuntu.com/ubuntu focal-backports/universe amd64 DEP-11 Metadata [30.5 kB]
1,044 kB を 1秒 で取得しました (740 kB/s)                              
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています       
状態情報を読み取っています... 完了
パッケージはすべて最新です。

現ユーザーのパスワードだけ入力する必要があります!

sudoコマンドの読み方

英語で公式には、「スードゥー」と発音します。

ただしローマ字読みでは「スードー」などとも読めるため、そのままスードーと発音する人も多いです。

sudoコマンドの設定ファイル

設定ファイルをいじると、sudoコマンドの実行内容を変更できます。

設定ファイルは、「/etc/sudoers」にあります。

$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults	env_reset
Defaults	mail_badpass
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root	ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo	ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

設定を変更したい時は、visudoコマンドを使います。

$ sudo visudo

管理者「root」にユーザー変更する方法

sudoは、管理者権限でコマンドを実行するためのもの。

ユーザーを「root」に変更したいときは、suコマンドを使います

$ su
パスワード: 
root@yulikepython-HP-Desktop:/home/yulikepython# 

変更する時はrootユーザーのパスワードが必要になります。

sudoコマンドの使い方

具体的にsudoコマンドの使い方を詳しく見ていきましょう。

  • sudoコマンドの構成
  • sudoコマンドの使用例

sudoコマンドの構成

sudoコマンドの構成は以下のとおり。

sudo (オプション) コマンド

オプションはなくても実行可能です。

sudoコマンドの使用例

sudoコマンドの使用例です。

具体例を見ればイメージが湧きやすいでしょう。

sudoでインストールする

sudo apt install apache2

sudoでlsコマンドを実行する

sudo ls

管理者でしか見れないフォルダで使用します。

sudoコマンドのオプション一覧

sudoコマンドのオプション一覧を紹介します。

オプションを使うと、sudoコマンドに新たな機能を追加できるからです。

  • ユーザーを指定する:-u
  • グループを指定する:-g
  • パスワード入力画面を表示させない:-n
  • パスワード入力のコメントを変更:-p
  • ユーザーに許可されているコマンドの表示:-l
  • 認証情報を無効にする:-k
  • ユーザーを変更する:-i

ユーザーを指定する:-u

-uオプションで、管理者以外にもユーザーを指定できます。

$ sudo -u yulikepython ls

yulikepythonがユーザー名です。

グループを指定する:-g

-gオプションで、グループの指定可能です。

$ sudo -g group1 ls

group1がグループ名です。

パスワード入力画面を表示させない:-n

-nオプションを使うと、パスワードの入力画面が表示されず終了になります。

$ sudo -n ls
sudo: パスワードが必要です

パスワード入力のコメントを変更:-p

-pオプションを使うと、パスワード入力のコメントを変更できます。

$ sudo -p password? ls
password?

書き方は、以下のとおり。

sudo -p 文字列 コマンド

本来はこのようなコマンドが、-pオプションでいかようにでも変更できます。

$ sudo ls
[sudo] yulikepython のパスワード: 

ユーザーに許可されているコマンドの表示:-l

-lオプションは、ログインユーザーに許可されているコマンドが何かを示します。

$ sudo -l
[sudo] yulikepython のパスワード: 
既定値のエントリと照合中 (ユーザー名 yulikepython)
    (ホスト名 yulikepython-HP-Desktop):
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

ユーザー yulikepython は yulikepython-HP-Desktop 上で
        コマンドを実行できます
    (ALL : ALL) ALL

認証情報を無効にする:-k

-kオプションは、一度入力した認証情報を無効にし、再度パスワードを求めます

yulikepython:~$ sudo ls
[sudo] yulikepython のパスワード: 
FL	   test       test2.txt
TOEICL&R  test.txt   test3.txt
pulse.bak  test1.txt  test4.txt
yulikepython:~$ sudo -k ls
[sudo] yulikepython のパスワード: 
FL	   test       test2.txt
TOEICL&R  test.txt   test3.txt
pulse.bak  test1.txt  test4.txt
yulikepython:~$ 

ユーザーを変更する:-i

-iオプションは、ユーザーを変更します。

$ sudo -i
[sudo] yulikepython のパスワード: 
root@yulikepython-HP-Desktop:~# 

まとめ:sudoコマンドは上手に使いこなそう

当記事の内容をまとめます。

  • sudoコマンドは、別ユーザーでコマンドを実行するときに使う
  • sudoコマンドを使うときは、管理者権限の場合がほとんど
  • sudoコマンドのオプションを使えば、別の機能が追加できる

sudoコマンドの構成はとてもシンプル

一度覚えれば簡単に使えます。

もしオプションも含めて使いこなしたいときは、いつでも当記事に戻ってきてください。

最後までご覧いただきありがとうございました。

✔Linuxの主要コマンド37選

タイトルとURLをコピーしました