sudoコマンドの使い方:コマンド単位で一時的に権限を昇格させる

sudoは、一般ユーザーが、コマンド単位で一時的に管理者(root)の権限でコマンドを実行するためのコマンドです。常にrootで作業するより、必要な操作のときだけ昇格するほうが、操作ミスやセキュリティ事故を減らせます。

sudoのよく使う形

実務や学習で登場しやすい使い方を、そのまま入力できる形でまとめました。

コマンド例内容
sudo systemctl restart nginx管理者権限でコマンドを実行
sudo -u alice command別のユーザー(alice)としてコマンドを実行
sudo -irootのログインシェルを起動
sudo !!直前のコマンドを、管理者権限でやり直す
sudo -l自分がsudoで実行を許可されているコマンドを確認
sudo visudosudoの設定(sudoers)を、文法チェックつきで編集

sudoの主なオプション

オプション意味
コマンド で許可範囲だけroot実行
-uユーザー 指定ユーザーとして実行
-l実行可能なコマンドを確認

sudoの実行例と結果の読み方

user@linux-study:~$ sudo systemctl restart nginx
[sudo] password for user:

sudoを付けてコマンドを実行すると、シェルごと切り替わるsuと違い、そのコマンド1つだけを一時的に管理者権限で実行できます。実行時にはログイン中のユーザー自身のパスワード入力が求められ、/var/log/auth.logなどに誰が何を実行したかが記録されるため、複数管理者がいる環境でも操作の追跡がしやすくなります。

練習用ターミナルでは、sudoをブラウザ上で安全に試せます。

sudoを使うときの注意点

sudo echo 'x' > /etc/fileは失敗します。リダイレクト(>)はsudoではなく、元のユーザーのシェルが行うためです。echo 'x' | sudo tee /etc/fileのようにteeを使います。

sudoersを直接編集すると、文法の誤りでsudoが使えなくなることがあります。必ずvisudoで編集してください。実行内容は/var/log/auth.logなどに記録されます(ディストリビューションにより異なります)。

sudoに関するよくある質問

suとの違いは?

suは別ユーザーに切り替えるコマンドで、rootのパスワードが必要です。sudoは自分のパスワードで、許可されたコマンドだけを実行します。

sudoが使えるユーザーを追加するには?

Debian系ではsudoグループ、RHEL系ではwheelグループにユーザーを追加するのが一般的です。

関連ページ

あわせて覚えたいコマンド:chmod・chown・systemctl・ls

sudoが登場する章:中級 第16章

← Linuxコマンド一覧へ戻る