2007年10月13日土曜日

[LINUX] useradd後にsshでログインできない

useraddで新規ユーザを作り、エラーも出なかったので、これでよしと思ったのですが、sshでログインしようとするとPermission deniedでログインできませんでした。ここにLinuxの落とし穴がありました。以下で解説しましょう。

まず

% useradd -gusers -p himitsu -s /bin/bash -d /home/okato -m okato

のように入力します。エラーは出ませんでした。確認したら/home/okatoというユーザディレクトリもできていました。すべて良好と思いsshでログインを試みたら、

$ ssh okato@myserver.com
Permission denied

となってログインできません。

パスワードを変えたりしていてわかったのですが、Linuxは実在する単語などのパスワードを受け付けてくれません。例えばpasswdでパスワード変更する場合にはこのチェックが働きます。ところがuseraddコマンドの時にはこのチェックが裏で働き、ダメなパスワードだとログインできないような設定にされてしまうようです。これは裏で起こっており、エラーメッセージの形でフィードバックされないため、管理者を悩ませる結果となったわけです。

教訓:パスワードは常に強力なものを使おう!

なお、コマンドラインでパスワードを設定する場合は、特殊な記号が使えないことに注意してください。| や>や<などの文字はコマンドラインで特別な意味を持つので、パスワードの一部として使えません。""で囲めばいいかもしれませんが、実験していません。

1 件のコメント:

nahouse さんのコメント...

ちなみに、どのディストリビューションで発生した現象でしょうか?
教えていただけると幸いです。