Ubuntuではユーザー権限でログインし、管理権限が必要な時はsudoを頭につけてコマンドを実行するのが流儀です。 しかし、ユーザーが自分だけであり公開しないサーバーはついついrootユーザーだけ設定して使ってしまうのですが、流儀を外れたがばっかりにトラップにはまりました。具体的な事象は次の通りです。
- Ubuntu 14.04 ServerにXubuntu Desktopを追加。
- rootユーザーでXubuntuにログイン。
- 毎回「ttyが作れなかった」みたいなエラーが出る。
- serviceコマンドでsshdを制御できない。
# apt-get install openssh-server # service ssh start start: Unknown job: ssh
色々調べた結果、Ubuntu Trustyではinitctlコマンドでもサービスの起動、停止などができるという話なので実行してみるとそっちはうまくいくようで、initctl start ssh
した後にnetstatコマンドでポート22で待ち受けしているか確認したところ、ちゃんとSSHサーバーとして機能しているようでした。
しかし相変わらずservice ssh start
の結果は「start: Unknown job: ssh」でした。
面倒臭かったのですが、adduser user
とかしてユーザーを作った後adduser user sudo
とかやって、service ssh restart
を実行してみたら任意のユーザーではそのコマンドが正常に通りました。
rootユーザーではだめだったのに、ユーザー権限ではserviceコマンドが通るって、バグくせえ。。
同じ事象がフォーラムの方に報告されていて、もう少し調べてみたらバグが報告されていました。Upstartのバグの模様です。 bugs.launchpad.net
まあ、rootユーザーでログインせずにユーザーでログインしましょうってことですね。 もしくはsystemdに移行した16.04LTSにしましょうって。