CentOSで特定のユーザのみ管理者にする

目次

やりたいこと

SSHでrootでのログインを不可とし特定のユーザのみrootになれるようにしたい。
その際にsuでパスワードなしでrootになることができ、sudoの際もパスワードなしで実行できるようにしたい。

対象ユーザをスーパーユーザにする

wheelグループに対象ユーザを追加する。

まずはrootでログインする。
gpasswdコマンドを使用して対象ユーザをwheelグループに追加する。
usermod -Gでもできるがいろいろ調べていたらお勧めしないらしい。

$ gpasswd -a kamakiri wheel
$ id kamakiri
uid=1000(kamakiri) gid=1000(kamakiri) groups=1000(kamakiri),10(wheel)

特定ユーザ以外からsuを拒否する。

wheelグループ以外からsuを拒否するために/etc/pam.d/suファイルを編集

$ vi /etc/pam.d/su
#auth required /lib/security/$ISA/pam_wheel.so use_uid
↓コメントを外すだけ
auth required /lib/security/$ISA/pam_wheel.so use_uid

wheelグループ以外のユーザでログインして再度suしてみる。

$ su -
パスワード: [正しいパスワードを入力]
su: 拒否されたパーミッション

ログインできない。

wheelグループのユーザでログインしてsuしてみる。

$ su -
パスワード: [正しいパスワードを入力]

ログインできる。

特定ユーザはパスワードなしでsuできるようにする。

パスワードを聞かれないように/etc/pam.d/suファイルを編集

$ vi /etc/pam.d/su
#auth sufficient pam_wheel.so trust use_uid
↓コメントを外すだけ
auth sufficient pam_wheel.so trust use_uid

wheelグループのユーザでログインしてsuしてみる。

$ su -

パスワードなしでログインできた。

sudoもパスワードなしで実行できるようにする

visudoコマンドを使用してファイルを編集

$ visudo

viが立ち上がるので下記を編集

# %wheel        ALL=(ALL)       NOPASSWD: ALL
↓コメントを外すだけ
%wheel        ALL=(ALL)       NOPASSWD: ALL

wheelグループのユーザでsudoしてパスワードが聞かれなくなった!!

sshにrootでのログインを拒否

/etc/ssh/sshd_config を編集する

$ vi /etc/ssh/sshd_config
#PermitRootLogin yes
PermitRootLogin no  ← 追加

私の環境ではPermitRootLoginがコメントアウトされていたので下の行に追加しましたが、コメントアウトされていないのであればnoに変えたらいいと思います。

sshdの再起動

$ systemctl restart sshd

動作確認してみたところ見事rootでログインができなくなりました!

Follow me!

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください