タグ: user

wheel グループのみ root 化 と root でのログイン禁止

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所属のユーザがいないグループに設定すればいいのかな?

ユーザとグループの確認

ユーザリストを確認したい時は

/etc/passwd

でリストが出るのでこれで確認する。
ユーザが所属しているグループは

id [ユーザ名]

で出てくる。

id

だけ打つと自分の所属しているグループが確認できる。

ユーザの追加は

adduser [ユーザ名]

で。
これはMySQLやsambaのユーザ追加とは別なので注意。

userdel [ユーザ名]

だとユーザ削除。