useradd username
普通に個人ユーザを作成。
passwd username
パスワードを変更。
usermod -G wheel username
個人ユーザをwheelグループに参加させる。
vi /etc/login.defs
login.defs ファイルをエディタで開く。
SU_WHEEL_ONLY yes
「SU_WHEEL_ONLY」の項目を一番最後に追記して保存。
vi /etc/pam.d/su
で、6行目辺りにある
#auth required pam_wheel.so use_uid
のコメントアウトを外して保存。
この段階までやることでwheelグループに入っているユーザのみが、suコマンドでrootユーザになれる。
他のユーザがsuで、正しいパスワードを入れても「su:パスワードが違います」になる。
このままだとrootパスワードを知っている人はそのままrootでsshログインできてしまうのでこれを防ぐ。
vi /etc/ssh/sshd_config
で、39行目辺りにある
#PermitRootLogin yes
を
PermitRootLogin no
に変更して保存。
/etc/init.d/sshd restart
でsshを再起動。
あらためてrootでログインしてみる。
「認証に失敗しました」なら成功。
次に、毎回suで入るのもいいけど、そうすると無いとは思うけどキーロガーでrootパスワードを取得することが可能。
さらに実行ユーザは結局rootになってしまって、誰が操作したのかわからない状態。
なのでsudoを使ってみる。
visudo
でsudoの設定ファイルを覗いてみる。
88 ## Allows people in group wheel to run all commands 89 # %wheel ALL=(ALL) ALL 90 91 ## Same thing without a password 92 # %wheel ALL=(ALL) NOPASSWD: ALL
のようなところがあるので、92行目のコメントアウトを外す。
これで
sudo yum update
とかやるとき、wheelに所属するユーザであればパスワードも聞かれず、そのまま作業することが出来る。
92行目の代わりに89行目のコメントアウトを外せばsudoの度にパスワードを聞かれることになるけど、
ほんのちょっとセキュリティは上がるのかな?
で、sudoで運用していくことにしたのでsuコマンドでrootになることを止めたいんだが。
どうすれば?
vi /etc/pam.d/su
で変更した部分をwheel所属のユーザがいないグループに設定すればいいのかな?