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.

関連ページ