Buffalo LS210Dではsuコマンドが動かない?(2)
前回はsuコマンドを入れ替えるという荒技を使ってしまったけれど
LS210Dでsuコマンドが動かない件の続きです。(しつこい?)前回はファン制御のスクリプトを動かす事を優先して、suコマンドを入れ替えるという荒技を使って突破したけれど、やっぱり納得いかないので正攻法でやってみました。
先ずは問題の把握。発生している現象については前回の記事を参照してください。先ず、シスログ("/var/log/messages")に出力されていた、
Jan 11 19:55:11 LS210D authpriv.err su[23753]: PAM unable to dlopen(/lib/security/pam_selinux.so):
/lib/security/pam_selinux.so: cannot open shared object file: No such file or directory
|
に着目。"/lib/security/pam_selinux.so"ライブラリの読み込み(dlopen)が失敗しているように見えます。そして "/etc/pam.d/su" ファイルを見てみると、
#%PAM-1.0
auth sufficient pam_rootok.so
# 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
auth include system-auth
account include system-auth
password include system-auth
session required pam_selinux.so close
session include system-auth
session required pam_selinux.so open multiple
session optional pam_xauth.so
|
と記述されており、これに従って"/lib/security/pam_selinux.so"を読み込もうとしているのだと思えます。一方、LS-VLの "/etc/pam.d/su" を見てみたら "/lib/security/pam_selinux.so" は記述されていませんでした。それなら、"/etc/pam.d/su" をLS-VLのものと同じ内容に書き換えてしまえば良いのではないかな?と言うことで、"/etc/pam.d/su" を以下のように書き換えました。
#%PAM-1.0
auth sufficient pam_rootok.so
# 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
auth include system-auth
account include system-auth
password include system-auth
#session required pam_selinux.so close
session include system-auth
#session required pam_selinux.so open multiple
session required pam_env.so
session optional pam_xauth.so
|
"/etc/pam.d/su"を書き換えたら、置き換えたsuコマンドを元に戻して suコマンドがちゃんと動くか試してみました。
# rm /bin/su
# mv /bin/su.org /bin/su
# su - hoge
Last login: Thu Jan 15 19:24:12 JST 2015 on pts/0
[hoge@LS210D ~]$
|
できました!やっぱり存在しないPAMモジュール("/lib/security/pam_selinux.so")を使う設定になっていたのが原因だったみたいですね。
これで rootユーザで suコマンドが使えるようになりました。しかし、まだ通常ユーザーでは suコマンドが使えない状態です。これは以前の記事「LS-VLではsuコマンドでrootになれない?」に書いたように設定を変更すればOK。どのユーザーでも問題なく suコマンドで rootになったり、他のユーザーになったり出来るようになりました。
|