somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Linux】suの制限

rootユーザのパスワードを知っている人が多すぎることは、セキュリティ上、まずいと思います。しかし、パスワードを教えない以外に、どんな制限方法が存在するかを知らなかったので調べてみました。

wheelグループ

root権限になれるユーザーの属するグループ名だそうです。一般的に、suコマンドを使ってrootユーザになります。suコマンドを使えるユーザは、wheelグループに属するように設定するといいです。設定方法は以下のとおりです。

usermod –G (所属していたグループ1,2,…,)wheel ユーザ名

/etc/login.defs

ログインに関する設定が記述されているファイルです。manで調べられますが、suやwheelに関することは書かれていません。以下の設定を追加することで、suコマンドを実行できるユーザをwheelグループに属するユーザだけに限定できます。

SU_WHEEL_ONLY yes

/etc/pam.d/su

/etc/login.defsの設定を有効にするためには、このファイルを編集する必要があります。編集箇所は、下記の4行目をコメントを解除して有効にすれば完了です。

# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth           sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth           required        pam_wheel.so use_uid

2行目のコメントは、そのままにしておきましょう。解除した場合、パスワードなしでsuコマンドを実行できてしまうためです。

試し方

実際にユーザを作成し、/etc/login.defsや/etc/pam.d/suおよび作成したユーザのグループを変更することで試すことができます。

おまけ

wheelグループに所属しているユーザがコマンドを実行できるようにvisudoコマンドで設定しておきましょう。