(mac OS Sierra 10.13.3)
独自にユーザを作成したあと、そのユーザからsuするとsorry と言われてしまいました。
postgres ~ $ su
Password:
su: Sorry
postgres ~ $
「mac su できない」とか「mac su: sorry」とかで検索すると「rootユーザのパスワードが設定されていないから」「sudo で 一度 passwd root !」といった記事は結構ヒットしますが今回はrootはすでに有効にしていて、デフォのユーザからはログインできるようになっているので、参考にならない。
moroken ~ $ su -
Password:
~ #
ということで、今回ちょっと調べたので、備忘的に残しておきます。(Macに縛らずLinuxで調べると色々でてきます)
su 関連の設定は
/etc/pam.d/su
というファイルで扱っているようです。中身はこんな感じ
# su: auth account session
auth sufficient pam_rootok.so
auth required pam_opendirectory.so
account required pam_group.so no_warn group=admin,wheel ruser root_only fail_safe
account required pam_opendirectory.so no_check_shell
password required pam_opendirectory.so
session required pam_launchd.so
この中の以下をコメントアウトすることで、作成したユーザでも su できるようになりました。とくに再起動やターミナルに入りなおす必要もなかったです。
# su: auth account session
auth sufficient pam_rootok.so
auth required pam_opendirectory.so
#account required pam_group.so no_warn group=admin,wheel ruser root_only fail_safe
account required pam_opendirectory.so no_check_shell
password required pam_opendirectory.so
session required pam_launchd.so
postgres ~ $
postgres ~ $ su
Password:
root postgres #
root postgres # exit
exit
postgres ~ $ su -
Password:
~ #
権限周りしっかりやるにはこのあたりのグループに加えてあげる等が必要だと思いますが、検証用のPCで今後もユーザ作る可能性あるので、これくらいにしておきます。
/etc/pam.d/su の他の箇所をコメントアウトすると、今までsu できていたユーザもできなくなったりするので、作業前にはcopyしておくことをおすすめします。