sudo
む。
- /etc/sudoers の編集には visudo を使いましょう。文法チェックもしてくれる
- /etc/shadow の編集には sudo vipw -s としましょう。まぁインストール直後だと問題ないだろうけど
- su を禁止するのはいいけど、この設定だと sudo -u user -s とか、sudo sh -c su とやってしまえば通過できてしまう。まぁ、su を禁止することで類似する行為をするな、というメッセージにはなるので、まったくの無意味だとは言わないが。sudo で実行したコマンドはログに残るし
つうか、半端に一部のユーザに su 出来るようにするのは変でないかい?postgres の権限で実行したいなら
% sudo -u postgress commands
で十分。root と postgres だけ許可したいなら
Cmnd_Alias SU = /bin/su %unoh ALL = (root, postgres) ALL, !SU
な感じだろう。もっと真面目にやるなら
Cmnd_Alias SHELLS = /bin/sh, /bin/bash, /bin/csh, /bin/tcsh, /usr/local/bin/zsh Cmnd_Alias SU = /bin/su %unoh ALL = (root, postgres) ALL, !SU, !SHELL
かな。まぁ
% cp /bin/bash $HOME/bin % sudo $HOME/bin/bash
とかで通過されるんだけど、そこまでやるとログであからさまだし、sudo を使う人間はほぼ確実に関係者になるから、見つけ次第きつく説教すればいいという話も有る。結局、運用ポリシーと設定のバランスの問題かも。
あと、su じゃなくて sudo を使うのは誤った操作を防ぐのもあるけど、実行したコマンド全てがログに残ることの方が大きいんじゃないかと思う。