Zabbixローカルユーザのパスワードリセット
監視システムとしてZabbixを使っています。このシステムでは認証をLDAP(ActiveDirectory)に投げています。
ところが、この投げている先のActiveDirectoryサーバがお役御免となって、新しい機械に変わりました。
同時にadministratorのパスワードも変更。
ApacheやPacketiXなど認証をこの退役するサーバに投げているところは対処したんですが、zabbixの認証を変更するのを忘れていました。
普段は私のアカウントをadmin権限にして設定などをやっているので、変更作業をしたくてもそもそもGUIでログインできない。
ローカルユーザにAdminって名前で管理者アカウントがあったはず。でもパスワードがわからん(泣)。
確かユーザ情報なんかはmysqlに入っていたはずとDBを除くとusersというテーブルがあります。
mysql> show tables ; (中略) | triggers | | user_history | | users | | users_groups | | usrgrp | | valuemaps | +-----------------------+ 88 rows in set (0.00 sec) mysql>
descをみると、これがユーザ情報で間違いないみたい。
mysql> desc users ; +----------------+---------------------+------+-----+-------------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+-------------+-------+ | userid | bigint(20) unsigned | NO | PRI | 0 | | | alias | varchar(100) | NO | MUL | | | | name | varchar(100) | NO | | | | | surname | varchar(100) | NO | | | | | passwd | char(32) | NO | | | | | url | varchar(255) | NO | | | | | autologin | int(11) | NO | | 0 | | | autologout | int(11) | NO | | 900 | | | lang | varchar(5) | NO | | en_gb | | | refresh | int(11) | NO | | 30 | | | type | int(11) | NO | | 0 | | | theme | varchar(128) | NO | | default.css | | | attempt_failed | int(11) | NO | | 0 | | | attempt_ip | varchar(39) | NO | | | | | attempt_clock | int(11) | NO | | 0 | | | rows_per_page | int(11) | NO | | 50 | | +----------------+---------------------+------+-----+-------------+-------+ 16 rows in set (0.02 sec) mysql>
じゃあってんでaliasのpassedカラムをクリアしてみる。
mysql> update users set passwd = '' where alias = 'Admin';
うーむ、ダメみたい。なぜだ。
Google先生に聞いてみる。passwdになにやら文字列ちゃんと入れないとクリアにならないとのこと。 なんだ、この文字列?
mysql> update users set passwd = 'd41d8cd98f00b204e9800998ecf8427e' where alias = 'Admin';
おかげ様でAdminのパスワードリセットできました。AdminでGUI画面にログイン後、LDAP認証の情報を変更。やれやれ。