SSHからはログインできるのに仮想コンソールからはログインできないという
事象が発生しています。(アカウントは関係ありません。)
このような事象で何か考えられることはありますでしょうか?
(urlはダミーです)
「仮想コンソール」が本当に仮想コンソールのことだとすると、普通はログインしてから使うものなので、そっから別のマシンにリモートログインするという事でしょうか?その前提だと、例えばsshは通るけどtelnetやrloginが駄目という事ならば,単に相手のマシンでそれを受け付けてないのでしょう。
それとも仮想でないただのコンソールの話ならば、PAMの設定が壊れてログインが禁止された状態になっているのかもしれません。設定ファイルは/etc/pam.d/loginだと思います。あるいは実はsshしているのは別のマシンだったとか。名前解決がおかしくなっていて勘違いしてませんか?はたまた、sshは公開鍵認証で通るけどコンソールログインに必要なパスワードが間違ってるとか。
http://www.linux.or.jp/JM/html/shadow/man5/shadow.5.html
Manpage of SHADOW
> /etc/shadowファイルを一時的に変更した
shadowファイルのパーミッションは大丈夫ですか?
shadowファイルは一般ユーザに読めてはいけないファイルですので、所有者はroot、パーミッションは600や400にする必要があります。
オーナー、パーミッションは変更していません。rootで600のままです。
パーミッションとコンソールは何か関係があるのでしょうか?
回答ありがとうございます。
試してみましたが駄目でした。
auth.logには、loginのところで入力したものが、LOGINとしてロギングされていたので、マッピングは合っているようです。
http://www.hatena.ne.jp/1126005314#a1
人力検索はてな - LINUXに関するヘルプです。 SSHからはログインできるのに仮想コンソールからはログインできないという 事象が発生しています。(アカウントは関係ありません。) このような..
ssh は公開鍵方式ではなく、パスワード認証を使用してログインできているのでしょうか?
気になるのは /etc/shadow を元に戻してpwconvを実行しているということです。pwconvを実行する理由は何でしょうか? pwconv は /etc/shadow を一番最初に作る時に一度だけ行えば良い作業です。何度も行うと /etc/shadow が壊れてしまいます(/etc/passwd のパスワードエントリが x の状態でやったら壊れますよね)。
あと、調査方法としては、仮想コンソールの getty プロセスに strace を仕掛け、ログイン処理時にどんな system call が発行され、それらがどのような状態で終わっているか(正常か否か)を見るというのが有効でしょう。ssh でログインして /dev/tty1 の getty プロセスに strace を仕掛け、仮想コンソールからログインすると情報が取得できます。
経験から言うと、/etc/shadow に非表示のバイナリデータが混入しただけで、ログインができなくなりますので、疑わしいのは /etc/shadow の中身かと思います。
回答ありがとうございます。
sshは公開鍵方式ではなく、パスワード認証でログインできています。(こちらも問題かと思い試しておりました。)
pwconvを実施した理由は、passwdコマンドでのパスワード変更ができなくなったため、ネットで調べたところ、@ITかの公式の記事で/etc/shadowを編集した場合は整合性がなくなることがあるので、その場合はpwconvを使えばよいことが書かれていたので、それに従いました。その結果、passwdコマンドでのパスワード変更ができるようになりました。
straceを実施したところ、私の分かる範囲では、問題になっているような箇所は見当たりませんでした。
そこで、試しにパスワード自体を変更してみました。今までパスワードに@を含んでいたのですが、@を含まないパスワードにしたところ、仮想コンソールからログインすることができました。
よくよく考えてみると、以前うまくいっていた時は@を入れていなかったような記憶もあります。
sshの平文ログインでは@は問題なく、仮想コンソールでは駄目なのがよく分かりませんが、とりあえず@を使わないことで回避できましたので、これでOKとします。
大変助かりました。ありがとうございました。
回答ありがとうございます。
仮想コンソールといっているのは、マシン直付けの、ALT+Functionキーで切り替えて使うttyのことを指しています。
パスワード入力後に、Login incorrectとなってしまいます。auth.logは通常の認証失敗時と同じエラーが出ています。
先日まで問題なく使えていたのに、急に駄目になってしまいました。
思い当たるのは/etc/shadowファイルを一時的に変更したことくらいですが、元に戻してpwconvは実行しています。
対象マシンが1台ですので、マシンが違うとかいったことではないと思っています。