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 件のコメント:
ちなみに、どのディストリビューションで発生した現象でしょうか?
教えていただけると幸いです。
コメントを投稿