質問: ### 前提・実現したいこと WordPressの「MW WP Form」のプラグインのアップデートをしたかったのですが、以下のエラーが表示されてしまいできませんでした。 そのWordPressのサイトは、一度「MW WP Form」で作成したお問い合わせフォームから大量のスパムが送られ、一部データを削除されるなどのハッキングを受けたものです(その時はサイトガードプラグインを入れたり、お問い合わせフォームにreCAPTCHAを入れたりして防ぎました)。他のプラグインはアップデートできています。「MW WP Form」だけがアップデートできません。 ### 発生している問題・エラーメッセージ MW WP Form の更新中にエラーが発生しました: いくつかのファイルをコピーできないため、最新版のインストールができません。これはたいていの場合、ファイルのパーミッションが適切でないことが原因です。 readme.txt, languages, languages/mw-wp-form-ja.po, languages/mw-wp-form-ja.mo, languages/mw-wp-form.pot, css, css/admin-list.css, css/admin-common.css, css/admin-data-list.css, css/style.css, css/admin-data.css, css/admin-repeatable.css, css/admin.css, classes, classes/validation-rules, classes/validation-rules/class.zip.php, classes/validation-rules/class.maximagesize.php, classes/validation-rules/class.numeric.php, classes/validation-rules/class.kana.php, classes/validation-rules/class.alpha.php, classes/validation-rules/class.filesize.php, classes/validation-rules/class.in.php, classes/validation-rules/class.mail.php, classes/validation-rules/class.between.php, classes/validation-rules/class.required.php, classes/validation-rules/class.noempty.php, classes/validation-rules/class.minimagesize.php, classes/validation-rules/class.eq.php, classes/validation-rules/class.alphanumeric.php, classes/validation-rules/class.url.php, classes/validation-rules/class.month.php, classes/validation-rules/class.akismet.php, classes/validation-rules/class.katakana.php, classes/validation-rules/class.hiragana.php, classes/validation-rules/class.filetype.php, classes/validation-rules/class.nofalse.php, classes/validation-rules/class.minlength.php, classes/validation-rules/class.tel.php, classes/validation-rules/class.date.php, classes/functions.php, classes/models, classes/models/class.contact-data.php, classes/models/class.mail.php, classes/models/class.abstract-form-field.php, classes/models/class.csv.php, classes/models/class.setting.php, classes/models/class.form.php, classes/models/class.akismet.php, classes/models/class.contact-data-setting.php, classes/models/class.validation.php, classes/models/class.session.php, classes/models/class.admin.php, classes/models/class.error.php, classes/models/class.json-parser.php, classes/models/class.file.php, classes/models/class.abstract-validation-rule.php, classes/models/class.data.php, classes/controllers, classes/controllers/class.controller.php, classes/controllers/class.contact-data.php, classes/controllers/class.admin-list.php, classes/controllers/class.main.php, classes/controllers/class.contact-data-list.php, classes/controllers/class.chart.php, classes/controllers/class.admin.php, classes/controllers/class.stores-inquiry-data-form-list.php, classes/services, classes/services/class.redirected.php, classes/services/class.mail.php, classes/services/class.exec-shortcode.php, classes/services/class.mail-parser.php, classes/form-fields, classes/form-fields/class.select.php, classes/form-fields/class.button-submit.php, classes/form-fields/class.zip.php, classes/form-fields/class.akismet_error.php, classes/form-fields/class.number.php, classes/form-fields/class.password.php, classes/form-fields/class.submit.php, classes/form-fields/class.button.php, classes/form-fields/class.email.php, classes/form-fields/class.datepicker.php, classes/form-fields/class.radio.php, classes/form-fields/class.button-button.php, classes/form-fields/class.submit-button.php, classes/form-fields/class.range.php, classes/form-fields/class.button-confirm.php, classes/form-fields/class.hidden.php, classes/form-fields/class.url.php, classes/form-fields/class.textarea.php, classes/form-fields/class.custom-mail-tag.php, classes/form-fields/class.text.php, classes/form-fields/class.button-back.php, classes/form-fields/class.image.php, classes/form-fields/class.checkbox.php, classes/form-fields/class.monthpicker.php, classes/form-fields/class.confirm-button.php, classes/form-fields/class.error.php, classes/form-fields/class.file.php, classes/form-fields/class.tel.php, classes/form-fields/class.back-button.php, classes/config.php, js, js/admin-data-list.js, js/mw-wp-form-google-chart.js, js/admin.js, js/jquery-ui-month-picker, js/jquery-ui-month-picker/MonthPicker.min.js, js/jquery-ui-month-picker/MonthPicker.min.css, js/scroll.js, js/admin-chart.js, js/mw-wp-form-repeatable.js, js/form.js, images, images/handle.png, templates, templates/contact-data-list, templates/contact-data-list/admin-print-styles.php, templates/contact-data-list/column.php, templates/contact-data-list/csv-button.php, templates/stores-inquiry-data-form-list, templates/stores-inquiry-data-form-list/index.php, templates/contact-data, templates/contact-data/admin-print-styles.php, templates/contact-data/detail.php, templates/contact-data/returning-link.php, templates/chart, templates/chart/index.php, templates/admin, templates/admin/add-ons.php, templates/admin/admin-mail-options.php, templates/admin/form-key.php, templates/admin/tag-generator.php, templates/admin/settings.php, templates/admin/validation-rule.php, templates/admin/url.php, templates/admin/mail-options.php, templates/admin/style.php, templates/admin-list, templates/admin-list/form-key.php, mw-wp-form.php ### 試したこと 1. プラグインを管理画面のダッシュボードから該当プラグインを「削除」 → 同様のエラー 2. FTPソフトから「mw-wp-form」を別名に変更 → 同様のエラー 3. FTPソフトで「mw-wp-form」フォルダを削除 → 何度やっても消えない 4. FTPソフトから「mw-wp-form」を別名に変更したあと、新しくmw wp formのプラグインを管理画面からDL → MW WP Fromがはいっている扱いのためDLはできない 5. FTPソフトから「mw-wp-form」を別名に変更した状態で、mw wp formプラグインをZIPファイルでDLして、管理画面からプラグインを新規追加でアップロードしてみる → 同じプラグインが2つはいっている扱いなのは変わらないため、WordPress側が混乱したのか「mw wp form」の設定画面に入れなくなる。 6. FTPソフトで「パーミッション」と「所有者/グループ」を見ると他のプラグインと明らかに情報が違うことがわかり、管理者を変えようと試みる。 → ターミナルからFTPにログインしようとするが、パスワードは合っているはずなのに「Connection closed」となりログインすら不可能。 ※ターミナルから管理者権限をいじるのはやったことがなく、基本の「き」すらよく分かってません。 ### 補足情報 使用OSはmac。 使用しているFTPソフトはFileZilla。 サーバーのPHPのバージョンは7.0.16。 サーバーはレンタル(詳細なプランは不明)、コントロールパネルはPlesk。 その他に必要な情報がございましたら追加します。 ### 推測・考えられる解決法 おそらく、以前の攻撃で管理者権限を変更されてしまったためにプラグインのアップデート・削除ができなくなってしまったのだと推測しています。ですので、その管理者権限をなにかに変えれば解決できると考えていますが、以下の点で詰まっています。 1. コマンドラインで変更する方法がよくわからない sftp コマンドでFTPに接続して、プラグインのフォルダに対して何かしらのコマンドを打って変更すると思いますが、FTPに接続できないので困っています。コマンド以外で変更する方法はありますか? 2. 権限を何に変更すればいいのか分からない 「Apache」にすればいいんでしょうか? 削除もできないため、他のプラグインに乗り換える事もできません。セキュリティ面を考えると不安なので、できればなんとかしたいです。お手数をおかけいたしますが、ご教示いただけると幸いです。
回答: まずはレンタルサーバーなのか何なのか、レンタルサーバーならどこのレンタルサーバーのどのプランなのか、その辺の情報が絶対必要です。 とりあえずDoS的な攻撃でしたら管理者権限を書き換えられるようなことはあまり考えなくて良いと思います。 いろいろやり方は考えられますが、3点提案してみます。 1.コントロールパネルから削除(レンタルサーバーの場合) フォルダを消したり名前変更したいのであればまずはコントロールパネルにログインします。 ほとんどのレンタルサーバーでファイルマネージャー的な物があるので、そこから削除なり名前変更を行う。 ファイルマネージャーからも出来ないのであればレンタルサーバーのサポートに相談しましょう。 2.DBからプラグインを強制的に無効にする https://happyquality.com/2014/07/07/2908.htm この辺を参考に。 3.ワードプレス自体を再構築する サイトにどれくらい手間がかかってるか、記事数がどれくらいか次第ですが、個人的にはあれこれ考えるくらいならこっちが簡単かな?と思います。 記事をエクスポートして、使用しているプラグインを控えて、画像・ファイルをバックアップして・・・ って感じで別のサブフォルダにWordpressをインストールし直して再構築していきます。 記事等が余程の件数があっても現状サイトの管理画面に入れるのであれば1時間はいらないのではないでしょうか? 細かいことがわかりませんがとりあえずの提案まで。