, ,

Plesk上のFTPパスワードをコマンドラインから確認する方法

2013年6月28日

Pleskでは、FTPパスワードなどのパスワード情報は、MySQLデータベースで管理しています。
Plesk管理用データベース psa にアクセスして、FTPパスワードを直接参照するコマンドをご紹介します。

FTPアカウントを「ftpaccount」とすると、コマンドラインから以下のように入力します。
FTPパスワード「passworddesu」が得られます。
[注意]データベースpsaのパスワードが記載された /etc/psa/.psa.shadow が読める権限で実行してください。本例ではroot権限で実行しています

# mysql -u admin -p`cat /etc/psa/.psa.shadow` psa -e "select
password from accounts where id = (select account_id from sys_users where login=
'ftpaccount')"
+--------------+
| password     |
+--------------+
| passworddesu |
+--------------+

解説
FTPアカウントはUnixユーザで、sys_usersというテーブルで管理されます。
sys_usersテーブルのloginがFTPアカウント名で、account_idによってパスワードとひもづけられます。

sys_usersテーブルの構造

+---------------+---------------------+------+-----+---------+----------------+
| Field         | Type                | Null | Key | Default | Extra          |
+---------------+---------------------+------+-----+---------+----------------+
| id            | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| serviceNodeId | int(10) unsigned    | NO   | MUL | 0       |                |
| login         | varchar(20)         | NO   |     | NULL    |                |
| account_id    | int(10) unsigned    | NO   | MUL | NULL    |                |
| mapped_to     | int(10) unsigned    | YES  | MUL | NULL    |                |
| home          | varchar(255)        | NO   |     | NULL    |                |
| shell         | varchar(255)        | NO   |     | NULL    |                |
| quota         | bigint(20) unsigned | NO   |     | 0       |                |
+---------------+---------------------+------+-----+---------+----------------+

あとは、account_idをaccountsテーブルで検索し、passwordフィールドを取得するだけです

accountsテーブルの構造

+----------+------------------+------+-----+---------+----------------+
| Field    | Type             | Null | Key | Default | Extra          |
+----------+------------------+------+-----+---------+----------------+
| id       | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| type     | varchar(32)      | NO   |     | plain   |                |
| password | text             | YES  |     | NULL    |                |
+----------+------------------+------+-----+---------+----------------+