こんにちは、山田ハヤオです。今回はsudoの設定を紹介します。
簡単な説明と注意
sudoは一般ユーザーからスーパーユーザーに昇格してコマンドを実行するためのものです。
パッケージのインストールや設定の変更でよく使うと思います。
このsudo、いろいろ設定があるのでそれを紹介します。
sudoの設定は正しく行わないと起動不可能になったり、セキュリティの重大な欠陥になったりします。十分に気をつけて編集してください。
設定ファイルを開く
まずは設定ファイルを開いて編集できるようにしましょう。
root権限で/etc/sudoers
を編集すればいいのですが、普通にエディタで編集すると、もし文法上のミスがあった時sudoコマンドが使えずにシステムから締め出されてしまいます。
それを防ぐために編集するための専用のコマンドであるvisudo
を使います。
名前からしてViを使うコマンドなのですが、個人的にどうしても好きになれないのでvisudo
でnano
を使います。
以下のコマンドを使って環境変数EDITOR
をnano
に設定するとnano
でvisudo
を使えます。
env EDITOR=nano sudo -E visudo
上のコマンドでエディタを起動した状態で次に進みましょう。
(vim派、Emacs派の方はそれぞれ環境変数の名前を変えてください)
特定のグループ(ユーザー)でsudoコマンドの使用を許可する
Arch Linuxのセットアップなどを経験している人は経験済みだと思います。
最後の行に以下を追加するとそのグループに所属しているユーザーはsudoコマンドを使えるようになります。
<USER>をユーザー名に置き換えてください。
(グループの場合は<USER>にグループ名を入れて先頭に%をつけてください)
# Allow user <USER> to use sudo
<USER> ALL=(ALL:ALL) ALL
特定のグループ(ユーザー)に特定のコマンドだけsudoを許可
aptコマンドだけを許可したいといった場合に使えます。
<USER>をユーザー名、<COMMAND>をコマンドに置き換えてください。
コマンドはフルパスで記述しておくのが良いそうです。
グループの場合は<USER>にグループ名を入れて先頭に%を付けてください。
# Allow user <USER> to use <COMMAND> with sudo
<USER> ALL=(ALL) <COMMAND>
パスワードなしでRootへの昇格を許可
この設定はセキュリティがものすごく低下(皆無)します。通常は行わないでください。
<USER>をユーザー名に置き換えてグループ名の場合は先頭に%を付けてください。
<USER> ALL=NOPASSWD: ALL
一部コマンドのみパスワードなしで昇格
特定のコマンドのみパスワード入力をスキップします。
こちらのほうがセキュリティ的にがまだ安全ですね。
<USER>と<COMMAND>はいままでと同じように置き換えてください。
<USER> ALL=NOPASSWD: <COMMAD>
プロンプトのタイムアウトを無効化する
sudoのパスワード入力画面のまま放置するとタイムアウトすることがあります。
それを無効化するための設定です。
# Disable timeout on prompt
Defaults passwd_timeout=0
パスワードの再入力が可能な時間
sudoは1度パスワードを入力すると、一定時間は再入力なしでsudoを使用できます。
この一定時間を無制限にすることで1度入力したら2度目は絶対に不要になるようにします。
この設定はセキュリティが大幅に低下するので十分注意してください。
Defaults timestamp_timeout=0
パスワード入力の際にアスタリスクを表示する
ブラウザとかモバイルアプリだとよく見かけるパスワードをアスタリスクで表示するやつです。
sudoはデフォルトでは何も表示されないですが、それだと何文字まで入力されてるのかわからないのでアスタリスクで表示したほうがいろいろ便利です。
当然ですが文字数などは他の人が見てるとバレてしまうので注意してください。
以下の行を最後に追加するとアスタリスクが表示されます。
# Show asterisk
Defaults pwfeedback
脆弱性について
sudoのバージョンが1.8.3.1未満の場合、この機能に深刻な脆弱性があります。
バージョンを確認し、もし対象の場合は絶対に有効化を行わないでください。
詳しくはhttps://news.mynavi.jp/article/20200207-969175/を参照してください。
設定を保存
設定が終了したらエディタでファイルを保存して終了してください。
入力ミスなく設定が正常に記述されていればそのまま設定が適用されます。
入力ミスなどで不正な設定だった場合、それらは破棄されます。
最後に
sudoの設定はいろいろ面倒な印象が()
まぁ参考にしてくれると嬉しいです。
Alter Linuxではsudoグループへの使用許可とアスタリスク表示をデフォルトで有効化しています。
コメント