Tecmint.comは10月19日(米国時間)、「4 Ways to Disable Root Account in Linux」において、Linuxでrootアカウントを利用できないようにする4つの方法を紹介した。rootユーザーには高い権限が与えられているため、rootユーザで誤った操作を行うと簡単にシステムを破壊することができる。こうしたミスを回避する手段として、rootユーザーを無効にすることがある。

紹介されている方法は次のとおり。

rootのシェルを変更する

rootユーザーのシェルをnologinに変更する。/etc/passwdファイルを編集して、rootのシェルが/bin/bashとなっているところを/sbin/nologinまたは/usr/sbin/nologinへ変更する。nologinのパスはディストリビューションごとに異なっているため、状況に合わせて適切なパスを使用する。

sudo vi /etc/passwd
  • rootのシェルをnologinに変更

    rootのシェルをnologinに変更

TTY経由でのrootログインを禁止する

TTYの設定を変更してrootログインを禁止する。この設定でlogin、gdm、kdm、xdmやTTYを起動するネットワークサービス経由でのログインを禁止することができる。設定は次のように変更する。

sudo mv /etc/securetty /etc/securetty.orig
sudo touch /etc/securetty
sudo chmod 600 /etc/securetty

SSH rootログインを禁止する

sshdの設定ファイルを変更してrootによるログインを禁止する。設定は次のように変更する。

sudo vi /etc/ssh/sshd_config
  • /etc/ssh/sshd_configファイルにPermitRootLogin noの設定を追加

    /etc/ssh/sshd_configファイルにPermitRootLogin noの設定を追加

設定変更後は次のようにsshdを再起動する。

sudo systemctl restart sshd 
または
sudo service sshd restart 

PAM経由のrootアクセスを禁止する

認証モジュールであるPAMでrootアクセスを禁止する。/etc/pam.d/以下にあるloginファイルなど、関連するファイルに次のように設定を追加する。

sudo vi /etc/pam.d/login
  • /etc/pam.d/以下の関連するファイルに設定を追加

    /etc/pam.d/以下の関連するファイルに設定を追加

設定で指定したファイルにrootを追加する。

sudo vi /etc/ssh/deniedusers

rootを追加したら次のようにパーミッションを変更する。

sudo chmod 600 /etc/ssh/deniedusers

なお、roorユーザーを無効にした場合もroot権限で操作する方法を残しておかないと、さまざまな操作が不能になる可能性がある。作業を実施する場合は、root権限で操作する方法を確保してから行うことが望まれる。