パスワードなしでsuをする方法

sshでサーバにログインして管理をするときに、一般ユーザでログインをしてからsuでrootになるというのはよくあるパターンだと思います。

通常はそのときにrootのパスワードを入力する必要がありますが、パスワードを入力しなくてよいように設定することも可能です。毎回rootのパスワードを入力するのが面倒という場合にも適していますが、root権限は与えてもよいがrootパスワードは教えたくないユーザがいる場合にも活用できます。

必要な設定は次の二つです。まず該当するユーザをwheelグループに追加します。そのユーザのデフォルトのグループは/etc/passwdに設定されていますが、追加のグループは/etc/groupに設定があります。/etc/groupに以下のような行があると思います。これがwheelグループのメンバーです。最初はrootユーザだけのようです。この後ろにカンマで区切ってユーザ名を追加します。

wheel:x:10:root

次に/etc/pam.d/suを編集します。Linuxでは認証を行うのにPAMというモジュールが利用されていますが、このファイルはそのうちsuを行うときの設定になります。このファイルには以下のような行があると思います。

# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth            sufficient      pam_wheel.so trust use_uid

コメントにしたがってこの設定を有効にすると、めでたくwheelグループのユーザはパスワード入力なしにsuが可能となります。