管理者パスワードについて

管理者パスワードについて

- 沢村 英二 の投稿
返信数: 20

お世話になります。管理者パスワードについてご質問させて頂きます。

WindowsXPにMoodleをインストールいたしました。マニュアルを参考にconfig.PHPの設定が完了段階で、一旦作業を終了してPCをシャットダウンしました。その後、http://localhost/index.phpに表示されるログイン画面で管理者としてログインしようとしましたが、ログインすることができません。ユーザはインストール時に作成した管理者のみなので、他のユーザは存在しません。メールでの通知についてはダミーのアドレスを登録したため受信できません。管理者でログインしないことには先に進むことができないため、恥ずかしながらご質問させて頂きました。設定ファイル等から管理者パスワードをリセットすることは可能でしょうか?

・Moodleバージョン1.9.7

・OS WindowsXP

・IE8

・クッキーの設定有効

・MySql、Apacheのサービス正常起動

以上、よろしくお願いいたします。

沢村 英二 への返信

Re: 管理者パスワードについて

- Tatsuya Shirai の投稿
いま自宅ですので資料、サーバ共に触れる状態にないた正しくなアドバイスをしてしまうかも知れません。御了承の上で、自己責任で作業お願いします。

管理者のパスワードを忘れてしまったのですね?

管理者のパスワードをリセットする方法を私は残念ながら知りません。

まだインストール作業が完了したばかりで、コース設定もユーザ登録も殆ど進んでいないのだとすれば、いっそのことインストールをゼロからやり直す手もあります。

MySQL上に作成したmoodleのデータベースをdropしてから再作成。moodledataフォルダ以下はそのままで良いと思います。あとはconfig.phpを削除してmoodleにアクセス。これで再インストール作業が始まるはずです。

#お急ぎかと思い、不確かな情報ではありますが返信しました。
Tatsuya Shirai への返信

Re: 管理者パスワードについて

- Tatsuya Shirai の投稿

 状況が少しあいまいなところがあります.
 まずマニュアル(どこのマニュアル?)のどの段階まで完了したのでしょうか.
 たとえば私の公開している手順はこちら

#管理者用のパスワードを確認含めて2回入力する仕組みではないことが今回の問題の根本的原因?

 フロントページの設定など,一通りの設定は終わったのでしょうか.

 クッキーに関しては,当方(IE8,Windows)では,自動Cookie処理を上書きする,のチェックはOffのままで問題は生じていません.一度,履歴の削除をしてみては如何でしょうか.他のサイト用のCoockieなども消えてしまい,多少,支障が出るかも知れませんが.また,IE以外のFirefoxなどからアクセスしてみては如何でしょう? なにか,お使いの環境に合わせてIEは特殊な設定がされている可能性があります.セキュリティソフトウェアの影響もゼロとは言えません.
 SALTに関しては,奥村先生の仰るように,まずは指定しない方が無難です(加えて,もし今後,アクセスが正常にできるようになった場合であってもドキュメントにあるように,40文字以上の半角文字(自動生成も可能)で指定するべきでしょう).

Tatsuya Shirai への返信

Re: 管理者パスワードについて

- 沢村 英二 の投稿

白井様

ご回答ありがとございました。また、言葉足らずで申し訳ございません。白井様のマニュアルを参考にしてconfig.phpとfsconfig.phpまで作業が完了し、一旦終了しました。その後、作業再開のためID/PW入力の画面でログインできない状況です。(現在の表示はクッキーが有効ではありませんと表示されログインできない状態)

一時ファイルとCookieを削除しましたが、状況に変化はございません。また、firefox3.5をインストールしてデフォルトの状態でhttp://localhost/index.phpを入力しましたが、「クッキーが有効ではありません」と表示されます。

SALTについては有効の状態から無効にして試してみます。

お手数ですが、何か良きアドバイスございましたらお教え頂きたいと思います。

沢村 英二 への返信

Re: 管理者パスワードについて

- Tatsuya Shirai の投稿

 そのエラーが本当にクッキーの問題によって表示されているのかどうか,確実なことは言えませんが,とりあえずクッキーの問題と考えましょうか.少々,情報ソースが古いですが,IEの場合,クッキーをブロックする設定になっているならば,画面右下にマークが表示されるようです.localhostsに対してクッキーを受け入れないようにする仕組みがどこかにあるのか...

http://support.microsoft.com/kb/880557/ja

 セキュリティソフトウェアはどうでしょう.マルウェア対策などでブラウザの設定によらず受け入れないような設定になっている可能性は皆無ではないですよね.

Tatsuya Shirai への返信

Re: 管理者パスワードについて

- Tatsuya Shirai の投稿

うむ! またこれかも知れません!

config.phpの <?php や ?> の前と後に余計な空白行や文字(半角空白も含みます)があると,クッキー関係のエラーが出るとの報告が過去にありました.

http://moodle.org/mod/forum/discuss.php?d=84725#p374443

config.phpやfsconfig.phpを編集した後とのことですので,非常に可能性が高いです.

<?phpの前,?>の後をよーく見て下さい.

#fs_moodleではこのチェックを行う機能がありますが,管理者としてログインした後でないと使えません.考えてみたら,デバッグの際に,意図的に余計な空行を入れたりする際に,ログアウトしてからは行っていません.


当方の環境では余計な空白などがあってもログインできてしまいますね(ワーニングは出力されますが).違うのかな.もしfs_moodleを御利用の場合は,試しにfsconfig.phpを別名に変えてみて下さい.警告は出ますが,強制的にログインできるはずです.

Tatsuya Shirai への返信

Re: 管理者パスワードについて

- Tatsuya Shirai の投稿

 moodle.orgにログインできていることから,クッキーの使用が全く無効になっている訳では無いですよね.

 moodle.php(253): $string['cookiesnotenabled'] = '残念ですが、あなたのブラウザーでは、クッキーの設定が有効にされていません。';

が使われているのは,login/index.phpの

 /// Check if the user has actually submitted login data to us

    if (empty($CFG->usesid) and $testcookies and (get_moodle_cookie() == '')) {    // Login without cookie when test requested

        $errormsg = get_string("cookiesnotenabled");
        $errorcode = 1;

    } else if ($frm) {                             // Login WITH cookies

ここだけです.get_moodle_cookie()はlib/moodlelib.php中にあります.

function get_moodle_cookie() {
    global $CFG;

    $cookiename = 'MOODLEID_'.$CFG->sessioncookie;

    if (empty($_COOKIE[$cookiename])) {
        return '';
    } else {
        $thing = rc4decrypt($_COOKIE[$cookiename]);
        return ($thing == 'guest') ? '': $thing;  // Ignore guest account
    }
}

localhost,つまり127.0.0.1からの MOODLEID_ほにゃららという名前のクッキーが記録されているか.IEのインターネットオプションの”閲覧の履歴”の「設定」で,ファイルの表示,Cookieほにゃらら127.0.0.1のようなアドレスのエントリを探し,それをコピー,そしてデスクトップに貼り付けますと,テキストファイルが得られます.もしあったならば,それをテキストエディタで開いて見て下さい.MOODLEID_ (アンダーバーの後に標準ですと文字はナシ)のエントリがあるならばクッキーは127.0.0.1から得られているのでしょう.(ほにゃららの部分は憶測です)

 あるいはあちらこちらの変数の値(たとえば$_COOKIE[$cookiename])をecho やvar_dump()するなどしてデバッグをして見て下さい.

 うーん,ZoneAlarm(あるいはそのOEM版.NEC製のノートPCにインストールされているのを見たことがあります)などのセキュリティソフトウェアが悪さをしているという可能性に賭けたいですね.どうでしょう,何か使われていませんか,ノートン360などなど.アンチウィルス以外の機能にクッキーの制限といった機能はありませんでしょうか?

Tatsuya Shirai への返信

Re: 管理者パスワードについて

- 沢村 英二 の投稿

白井様

ご回答ありがとうございます。また、ご返事遅くなり申し訳ございませんでした。いろいろアドバイス頂きありまがとうございました。お教え頂きました方法を試したり、PCを変えたりしましたが上手くいきませんでした。最終的に、新たに再インストールを行いマニュアル通りに一連の作業を完了した段階で、再起動すると再ログインすることができました。ありがとうございました。

また、アドバイス頂きました皆様にもこの場をかりてお礼申し上げます。何かあった際にはご質問させて頂きたいと思います。

以上、よろしくお願いいたします。

沢村 英二 への返信

Re: 管理者パスワードについて

- Tatsuya Shirai の投稿

 原因が分からなかったのは少々悔しいですが,無事にインストール完了おめでとうございます.

 Moodleの良い点はオープンソースである点です.確かに色々とバグもありますが,比較的習得の容易なPHP言語を用いていますので,もしC++言語を御存知であれば参考書一冊で十分にMoodleのソースを追いかけることができます.是非ともチャレンジしてみて下さい!

では,今後もさまざまな問題,提案,よろしくお願いします.

沢村 英二 への返信

Re: 管理者パスワードについて

- Minoru Akiyama の投稿
秋山@eラーニングサービスです。

mysqlサーバにmysqlクライアントで直接アクセスできるのでしたら、下記のハッシュをmdl_userテーブルのusernameカラムがadminのレコードのpasswordカラムに下記のハッシュ値を書き込めば、ユーザ名admin、パスワードmoodle-adminでログインできます。
628879860f2d4b5815bbf726f45b3330
Minoru Akiyama への返信

Re: 管理者パスワードについて

- Minoru Akiyama の投稿
秋山@eラーニングサービスです。

SQL文で書くと以下のようになります。
UPDATE `mdl_user`
SET `password` = '628879860f2d4b5815bbf726f45b3330'
WHERE `username` = 'admin';
このままコピー&ペーストしても良いですし、スペースを入れて1行にして入力しても結果は同じです。

Minoru Akiyama への返信

Re: 管理者パスワードについて

- 沢村 英二 の投稿

秋山様

早速のご回答ありがとうございました。データベースについては初心者のためお教え頂きましたSQLをどのように書き込んだらよいか悩んでおります。コマンドプロンプトでmysql→bin→sql.exeを実行し、お教え頂きましたSQLを書き込みましたがエラーで書き込みできませんでした。

よきアドバイスを頂けると幸いです。

以上、よろしくお願いいたします。

沢村 英二 への返信

Re: 管理者パスワードについて

- Minoru Akiyama の投稿
秋山@eラーニングサービスです。

SQL文を入力する前に、データベースを選択する必要があります。
Moodleのデータベースが'moodledb'だとすると、以下のSQL文を先に実行します。
USE 'moodledb';
Minoru Akiyama への返信

Re: 管理者パスワードについて

- 沢村 英二 の投稿

秋山様

ご回答ありがとうございました。お教え頂きました手順を実施したところ下記のように表示されました。

mysql> USE 'moodle';
Database changed
mysql> UPDATE `mdl_user`
    -> SET `password` = '628879860f2d4b5815bbf726f45b3330'
    -> WHERE `username` = 'admin';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

その後、http://localhost/index.phpのログインでID:admin、PW:moodle-adminを入力しましたが、「あなたはログインしていません」と表示され、左メニューの管理者メニューが表示されません。

データベースはデフォルト値から変更しておりませんので「moodle」かと思います。

他に原因がありますでしょうか。重ね重ねの質問で申し訳ございません。

沢村 英二 への返信

Re: 管理者パスワードについて

- Haruhiko Okumura の投稿
1.9.7 ですか。
salt が有効になっているのでしょうか。
Haruhiko Okumura への返信

Re: 管理者パスワードについて

- 沢村 英二 の投稿

Okumura様

ご回答ありがとうございました。moodleフォルダ直下のconfig.phpに$CFG->passwordsaltmain = 'ランダムな文字列';を追加いたしました。今回はメッセージが「残念ですが、あなたのブラウザーでは、クッキーの設定が有効にされていません。」に変更されました。

インターネットオプション→プライバシータブ→詳細設定ボタン

・自動Cookie処理を上書きするにチェック
・ファーストパーティ、セカンドパーティ共に受け入れるのチェック
・常にセッションCookieを受け入れるにチェック

上記の設定になっております。

お手数ですがご教授頂ければ幸いです。

沢村 英二 への返信

Re: 管理者パスワードについて

- Haruhiko Okumura の投稿
逆で,saltを有効にすると秋山さんの方法が使えなくなると思います。
Windows版なのですね。それなら秋山さんをはじめもっと詳しい人にお願いして,私はパスします。 笑顔
沢村 英二 への返信

Re: 管理者パスワードについて

- Minoru Akiyama の投稿
秋山@eラーニングサービスです。

「あなたはログインしていません」と表示されるということは、ユーザ名とパスワードは問題ないと思います。
$CFG->datarootに指定しているディレクトリは正しいですか?
Minoru Akiyama への返信

Re: 管理者パスワードについて

- 沢村 英二 の投稿

秋山様

ご回答ありがとうございます。config.php内は「$CFG>dataroot ='C:\xampplite/moodledata';」となっておりますが、いかがでしょうか?また、先ほどokumura様からの回答にも記載いたしましたが、「クッキーが有効ではありません」のメッセージに変更されました。

お手数ですが、ご教授頂ければ幸いです。

沢村 英二 への返信

Re: 管理者パスワードについて

- Minoru Akiyama の投稿
秋山@eラーニングサービスです

config.phpの「$CFG>dataroot ='C:\xampplite/moodledata';」と実際のディレクトリがあっていないと、ログインしてもはじきだされてしまいますが、大丈夫ですか?
設定と実態があっていなければ、ちゃんと動きません。よく確認しましょう。
Minoru Akiyama への返信

Re: 管理者パスワードについて

- Tatsuya Shirai の投稿

 $CFG->datarootが正しくない場合は(Moodleから)エラーメッセージは英語で出力されますね.

 クッキーに関するエラーが日本語であるならば$CFG->datarootは大筋で正しい可能性が高いです.日本語ですよね?