開発現場のrootユーザーのパスワードの運用

Linuxに限らず、WindowsやmacOSでもユーザー名とパスワードはシステムにログインするためのカギとなっている。したがって、パスワードを他人に推測されにくいもの、辞書攻撃や総当たり攻撃でも発見されにくいものにすることはセキュリティ対策の基本だ。

他人に推測されにくく、かつ、自分には覚えやすいパスワードを作る方法はさまざまなメディアが報じている。こうしたメディアの記事を活用して、効果的なパスワードを作るテクニックを身につけてしまえば、苦労せずに破られないパスワードを作ることが可能になる。

最近はパスワード管理アプリケーションを推奨する研究者も増えており、よく利用するアカウント以外はパスワード管理アプリケーションに任せてしまうという運用をするケースも多い。こうした運用をしていれば、普段覚えておく必要のあるパスワードを最小限に抑えることができ、頭の中で覚えておくという使う方はそれほど無理のないものになる。

しかし、だ。手を抜きたくなるのが人間というものだ。例えば、開発段階にあるシステムのサーバはrootのパスワードを設定しない状態にしておくことがある。本稼働する直前でパスワードを設定するから、開発段階は自由に管理者権限を利用できるようにしておくという使い方だ。決まった人物しか操作しないし、いちいちパスワードを入力する必要がなく、楽だからである。

rootをパスワードなしで利用するための設定

rootのパスワードが設定してあると、次のようにシステムコンソールからログインしようとするとパスワードの入力を求められる。

  • rootとしてのログイン時にパスワードの入力を求められる

    rootとしてのログイン時にパスワードの入力を求められる

一般ユーザーからsuコマンドで管理者ユーザーに移行する時にも、同様にrootのパスワードを入力する必要がある。

  • suコマンドでrootになるにもrootのパスワードが必要

    suコマンドでrootになるにもrootのパスワードが必要

rootのパスワードはvipwコマンドを利用すると、簡単に削除することができる。vipwコマンドを実行すると次のようにアカウントファイルを編集するエディタが起動してくる。

  • vipwコマンドを実行して編集を開始

    vipwコマンドを実行して編集を開始

vipwコマンドで編集するデータはコロン(:)区切りのデータになっており、コロン区切りで2つ目のデータが暗号化されたパスワードになっている。この部分を削除すると、パスワード無しの状態で使えるようになる。

rootのアカウントデータはrootという文字列からはじまる行なので、この行の1つ目のコロンと2つ目のコロンの間の文字列を削除する。保存してからsuコマンドでrootになろうとすると、次のようにパスワードを入力することなくrootになることができる。

  • rootのパスワードなしでrootになることに成功

    rootのパスワードなしでrootになることに成功

この状態であれば、システムコンソールからrootでログインする時もパスワードを求められなくなる。ログインを制限する必要がない状態にあるのであれば、これはこれでかなり楽に作業を行えるようになる。

再度、rootにパスワードを設定する

以上の操作で、パスワードなしでrootを運用できる状態になったわけだが、これはpasswdコマンドを使って変更することができる。passwdコマンドでrootのパスワードを設定すれば、それがそのままrootのパスワードになる。必要になった段階でrootのパスワードを設定し直せばよいわけである。

しかし、だ。時々、パスワードの再設定を忘れることもある。つまり、設定すべきパスワードを設定するのを忘れて、そのまま、誰でもrootになれる状態でサーバを出荷してしまったり、運用を開始してしまったりといった場合である。多くの現場は時間に追われて切迫しており、こうした状況が発生してしまう。管理対象のサーバが数十台とか数百台とかになってくると、こうしたことが起こりやすくなる。

開発中はrootのパスワードを設定したくないというのは、開発現場にはよくある話だ。または、全員が知っている簡単なパスワードを設定して使う回すこともある。

しかし、このままの状態で本番運用に入るのはまずい。この辺りは利便性とのバランスの問題になってくるのだが、多少不便でも一定のセキュリティを確保しておいたほうが無難だと思うので、rootユーザーのパスワードの取り扱いは注意していただきたい。