sudo / su の使い方
root などの権限で実行
書き方
sudo コマンド sudo -i sudo -u ユーザー コマンド sudo -l(自分に許されたコマンド) sudo -l -U ユーザー(他人の権限)
/etc/sudoers と /etc/sudoers.d/ の決まりで許されたコマンドを実行します。許されていなければ「Sorry, user … is not allowed to execute …」、実行の記録は /var/log/secure に残ります。sudo -i で root のシェルへ、exit で戻ります。
よく使うオプション
| オプション | 意味 |
|---|---|
-i | root としてログインしたのと同じシェルに入る |
-u ユーザー | root ではなく、指定したユーザーとして実行する |
-l | 自分に許されているコマンドを出す |
-e ファイル | root のファイルを、自分のエディタで安全に直す(sudoedit と同じ) |
例
$ sudo systemctl restart httpd
root の権限が要るコマンドを、そのときだけ root として実行します。
$ sudo -lUser ec2-user may run the following commands on web01:
(ALL) NOPASSWD: ALLこのユーザーに sudo で何が許されているかを確かめます。
$ sudo -u postgres psql
postgres ユーザーとして psql を起動します。
$ sudo -i
root のシェルに入ります。終わったら exit で元のユーザーに戻ります。
$ su - alice
su はほかのユーザーに切り替えます。- を付けると、そのユーザーでログインしたのと同じ環境になります(alice のパスワードが要ります)。
よくある間違い・注意
- sudo を許されていないユーザーで使うと「is not in the sudoers file」となり、その記録は /var/log/secure に残ります。
- /etc/sudoers は直接書き換えず、visudo で直します。書き間違えると sudo が使えなくなるためです。
- root のシェルに入ったままにせず、作業が終わったらすぐ exit します。
実際に打って練習する
Linux レベル1 コースの Lv44「王の許し sudo」で覚えます(第3章 権限の城(権限とユーザー))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
Lv1〜16 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。