Article ID: 112032, created on Dec 2, 2011, last review on May 3, 2014

  • Applies to:
  • Plesk 11.5 for Linux
  • Plesk 11.5 for Windows
  • Plesk 10.3 for Windows

症状

Plesk 9.5 で、client というクライアントを作成し、連絡先としてメールアドレス「client@domain.tld」を指定しました。また、domain.tld およびメールボックス「client@domail.tld」を追加し、これに対して cp アクセスを許可しました。 10.x へのアップグレード後に、クライアントの連絡先情報で連絡先の名前を変更しようとしたところ、次のエラーが発生しました。
 
メールアドレスのフィールドがハイライトされ、 "User with such e-mail address already exists in the system" というエラーが表示されました。

原因

クライアントまたはドメイン管理者のメールアドレス(プロファイル内)が Parallels Plesk Panel 内のメールボックスと一致し、このメールボックスにコントロールパネルへのアクセスパーミッションがある場合、アップグレードを行うとこれらの顧客に 2 つの補助ユーザアカウントが(同じメールアドレスで)作成されます。Parallels Plesk Panel では、これらのユーザアカウントの個人情報(パスワードを含む)を変更できません。

回避策

アップグレード前:
以下のクエリを実行して、コントロールパネルへのアクセスが許可されているメールボックスとメールアドレスが一致しているユーザを検索します。
mysql> select login from clients where email in (select concat(m.mail_name, '@', d.displayName) from domains d, mail m, Permissions p where m.perm_id=p.id and (p.permission="cp_access" and value="true"));
mysql> select d.name from domains d, dom_level_usrs dl, Cards c where c.id=dl.card_id and dl.dom_id=d.id and c.email in (select concat(m.mail_name, '@', d.displayName) from domains d, mail m, Permissions p where d.id=m.dom_id and m.perm_id=p.id and (p.permission="cp_access" and value="true"));
この後で、次の 2 つの方法があります。
- 検出されたクライアント/ドメイン管理者のメールアドレスを変更する。
- これらのユーザのメールボックスから、コントロールパネルへのログイン用パーミッションを削除する。

Windows のコマンドライン:
"%plesk_bin%\dbclient.exe" --direct-sql --sql="select login, email from clients where email in (select (m.mail_name + '@' + d.displayName) from domains d, mail m, Permissions p where m.perm_id=p.id and (p.permission='cp_access' and value='true'))"

"%plesk_bin%\dbclient.exe" --direct-sql --sql="select d.name, c.email from domains d, dom_level_usrs dl, Cards c where c.id=dl.card_id and dl.dom_id=d.id and c.email in (select concat(m.mail_name, '@', d.displayName) from domains d, mail m, Permissions p where d.id=m.dom
_id and m.perm_id=p.id and (p.permission='cp_access' and value='true'))"
アップグレード後:
同じメールアドレスのコントロールパネルユーザを検索します。
mysql> select login,contactName,email from smb_users where email in (select email from smb_users group by email having count(email)>1);
login contactName email
client CustomerName client@test.domain.com
client@test.domain.com client@test.domain.com client@test.domain.com
アップグレードで作成された補助ユーザを削除します(メールアドレスとログイン名が常に同じ)。
# /usr/local/psa/bin/user -d client@test.domain.com

Windows のコマンドライン:
"%plesk_bin%\dbclient.exe" --direct-sql --sql="select login,contactName,email from smb_users where email in (select email from smb_users group by email having count(email)>1)"

a914db3fdc7a53ddcfd1b2db8f5a1b9c 56797cefb1efc9130f7c48a7d1db0f0c 29d1e90fd304f01e6420fbe60f66f838 c796c01d6951fa24ed54c7f1111667c6 85a92ca67f2200d36506862eaa6ed6b8 f2d85fccc955a226f0b30e58456170cb 01bc4c8cf5b7f01f815a7ada004154a2 0a53c5a9ca65a74d37ef5c5eaeb55d7f 46a8e394d6fa13134808921036a34da8 bd7fc88cf1b01f097749ae6f87272128

Email subscription for changes to this article