rootユーザのログインを制御する
/etc/securettyでrootログインを制御する
RedHat系のLinuxでは、rootユーザによるログインを許可・禁止することが設定できます。
rootがログインできる端末リストのファイルは「/etc/securetty」です。
# cat /etc/securetty
tty1
tty2
tty3
tty4
tty5
tty6
tty7
...
なお、「rootによるログインを許可・禁止」というのは、rootユーザで直接ログインすることについての制御になります。rootによるログインが禁止されている環境でも、一般ユーザでログインした後に、suコマンドを使ってrootユーザになることは可能です。
/etc/securettyの設定変更例
ログインを禁止するには、当該端末名の行頭を「#」でコメントアウトします。
例えば、/etc/securetty から、tty1 の行を消してみます。
# cat /etc/securetty
#tty1
tty2
tty3
tty4
tty5
tty6
tty7
...
[Ctrl]+[Alt]+[F1]を押して仮想コンソール1に移動し、 root でログインを試みると以下のように拒否されます。
login: root
Password: (root のパスワードを入力します)
Login incorrect
なお、sshでのrootログインは、/etc/securetty の影響を受けないため、設定を行ってもログイン可能です。sshについてはsshd_configの設定を変更します。
root以外ログインできなくする
「/etc/nologin」というファイルが存在すると、root以外のユーザはログインができなくなります。
# touch /etc/nologin
「/etc/nologin」記述した内容は、ログインを拒否するときにメッセージとして出力してくれます。
システム単位でバックアップを実行して、ユーザに接続させたくない場合には、以下のようなメッセージを表示してあげると、親切です。
# cat > /etc/nologin << E-O-F
> This system backup now.
> Try later.
> E-O-F
ログインを試みたユーザには上記で設定したメッセージを表示されます。
$ slogin capm-network.com
Password:
This system backup now.
Try later.