(最終更新月:2022年9月)
✔このような方へ向けて書かれた記事となります
「sudoコマンドって何?」
「sudoコマンドってどうやって使うの?」
「sudoコマンドでできることって変えられるの?」
✔当記事を通じてお伝えすること
- sudoコマンドの基礎知識
- sudoコマンドの使い方
- sudoコマンドのオプション一覧
当記事では、sudoコマンドの基礎知識や使い方だけでなく、オプションの一覧など必要なこと全てをご紹介します。
ぜひ最後までご覧ください。
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選