解決済み

パスワード設定していないユーザーのログイン

  • 困ってます
  • 質問No.6471722
  • 閲覧数6177
  • ありがとう数6
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 54% (47/87)

いつもお世話になっております。

linuxで、useraddした後、passwdコマンドでパスワードを設定していないユーザーがいます。ここでは、postgresとします。

このユーザーに一般ユーザーからなるときに、
$su - postgres
としますが、パスワードがきかれて、何も入力しないと、
invalidになります。(centos5)

パスワードを設定しないと、一般ユーザーからログインできないのでしょうか。
ちなみに、rootからpostgresですと、ログインできます。
$su -
$su - postgres

お手数をおかけしますが、なにとぞご教授お願いいたします。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 65% (1332/2045)

 実際useraddしてみると分かりますが、useradd直後の状態では、パスワードは「設定されていません」。
 設定しとらんのやけん設定はされとらんやろ何を言うてるんアホちゃうんと思うなかれ。パスワードが設定されていないとは、パスワードが空である(=初期値としてランダムパスワードが設定されている訳ではない)という事です。さて、ではどうして一般ユーザーからsuできないのでしょうか。rootになって

# getent shadow postgres

とすると、パスワードの欄が半角びっくりマーク2個のみが印字されたかと思います。この半角びっくりマーク2個というのがLinuxにおいて「アカウントがロックされている」という状態になります。
 試しに/etc/shadowファイルをrootで直接書き換える(びっくり2つを削る)と、一般ユーザーからパスワードなしでsu - postgresできるようになります。もちろんこんな危険な操作(shadowの書き換え)は普通せずに、以下のようにします。

# passwd -u -f postgres

passwd -uというのは、ロックアウトされているアカウントのロックを解除するものですが、現在postgresにはパスワードが設定されていないためpasswd -uだけだと「危険だべ」と拒否されます。ので、-fオプションをつけて強行します。すると先ほど/etc/shadowを直接書き換えたのと同じ状態に変わり、一般ユーザーからパスワードなしでsu - postgresする事ができるようになります。逆にロックする時は

# passwd -l postgres

です。詳しくはpasswd -hなどを参照の事。root(uid 0)はロックされているアカウントもおかまいなしに変身できるという凄い権利を持っています。
お礼コメント
uff-n

お礼率 54% (47/87)

ありがとうございます!
非常によく分かりました。
今までいただいた回答の中でも、指折りでわかりやすかったと思います。
感謝しています。
投稿日時 - 2011-01-25 01:48:02
たいせつな将来のこと。あえて、知らない人に聞いてみよう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


OKWAVE若者応援スペシャル企画

ピックアップ

ページ先頭へ