sudo

sudoとは、引数に指定したコマンドをスーパーユーザまたは他のユーザとして実行するLinuxコマンドです。現在のユーザが実行権限を持っていないコマンドを実行するために利用します。sudoの使い方をご紹介します。

使い方

sudo [sudo-options] command [command-options]
sudo-options
sudo コマンドのオプション(後述)を指定する。
command
実行するコマンドを指定する。
$ sudo apt install make
スーパーユーザとしてコマンドを実行する場合、以下に示す管理および特権コマンドを指定することが多い。
command-options
実行するコマンドのオプションを指定する。

オプション

sudo コマンドには、以下に示すオプションを指定することができる。

-h
短いヘルプメッセージを標準出力に表示して終了する。(POSIXスタイル)
$ sudo -h
--help
短いヘルプメッセージを標準出力に表示して終了する。(GNUスタイル)
-u user
ユーザを指定する。(POSIXスタイル)

ユーザの指定を省略した場合、スーパーユーザ(rootユーザ)としてコマンドを実行する。

$ sudo -u tsuka vi .profile
--user=user
ユーザを指定する。(GNUスタイル)
$ sudo --user=tsuka vi .profile
-V
sudoコマンドおよびプラグインのバージョンを表示する。(POSIXスタイル)
$ sudo -V
Sudo version 1.8.31
Sudoers policy plugin version 1.8.31
Sudoers file grammar version 46
Sudoers I/O plugin version 1.8.31
--version
sudoコマンドおよびプラグインのバージョンを表示する。(GNUスタイル)
--
sudo がコマンドライン引数の処理を停止することを示す。コマンドの引数にハイフンで始まる文字列を渡したいときに利用する。

sudoは何の略?

sudoは「substitute user do」の略です。

sudoコマンドの読み方

sudoコマンドの読み方は「スードゥー(soo-doo)」です。

The official pronunciation is soo-doo (for su ‘do’). However, an alternate pronunciation, a homophone of ‘pseudo’, is also common.

sudoとsuの違い

sudoコマンドを実行すると、現在のユーザのパスワードを入力することが要求される。suコマンドを実行すると、切替先のユーザのパスワードを入力することが要求される。

sudoで実行できるコマンドは、sudoersファイルで細かく設定することができる。suで実行できるコマンドは、切替先のユーザが実行できるコマンドである。

sudoおよびsuコマンドを実行しても、カレント・ワーキング・ディレクトリは変わらない。ただし、su に - オプションを指定した場合に限り、カレント・ワーキング・ディレクトリが切替先ユーザのホームディレクトリに変わる。

sudoとsuの違い
sudo su
要求されるパスワード 現在のユーザのパスワード 切替先のユーザのパスワード
実行可能なコマンド sudoersファイルで設定したコマンド 切替先のユーザが実行できるコマンド
カレントディレクトリ 変わらない - オプションを指定した場合は切替先ユーザのホームディレクトリに変わる

Ubuntu

Ubuntuのデフォルト設定では、スーパーユーザ(rootユーザ)のアカウントはロックされているので、rootユーザでログインすることはできない。このため、rootユーザ権限が必要な操作はsudoコマンドを用いて実施することになる。

設定

デフォルトでは、スーパーユーザ(rootユーザ)のみがsudoコマンドを使用できる。どのユーザがsudoコマンドを使用できるかは、sudoersファイルで管理する。sudoersファイルは、テキストファイルで直接編集するのではなく、visudoコマンドで編集する。

関連記事

visudo
sudo 用の設定ファイル (sudoers) を編集する

参考文献

Sudo Project (2022) Sudo