エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


パーミッション(属性)一括変更ツール・WordPress最適化済

      2017/03/12

ファイル、フォルダのパーミッション一括変換ツール

 

「パーミッション一括変更ツール(WordPress最適化済)」リリース!

 
WordPressのファイル、フォルダのパーミッション(属性)をまとめて変更するツール(PHPのプログラム)を作りました。
 
 パーミッション一括変更ツール(WordPress最適化済)ダウンロードページ
 
 
パーミッション一括変更ツール(WordPress最適化済)の機能
・WordPressのフォルダ内のファイル、フォルダのパーミッションの一覧を表示します。
・表示されたファイルを選択し、パーミッションを変更します。
 
 
パーミッション一括変更ツール(WordPress最適化済)の目的
WordPressのファイル、フォルダのパーミッションを変更し、セキュリティの向上を目的としています。
 
 
ちなみに、「WordPress最適化済」と書いてはいますが、WordPressでなくても何のサイトでも全く問題なく使えます。WordPressに限定するような処理は一切いれていません。というか、何をすれば WordPress限定にできるのか分かりません(笑)!
 
ただ、「WordPress最適化済」と対象を明確にしておく方が WordPressを使う方にとっては優しいかな、と。
「あ、これ、WordPressのパーミッションの変更用のツールなんだ!」と思ってもらえる方が WordPressユーザには使ってもらいやすいかな、と思ったというお話です。
 
 

「パーミッション一括変更ツール(WordPress最適化済)」の使い方

 
ファイルをダウンロードして、zipファイルを解凍して「chmod_wp.php」を取り出します。
取り出したファイルを WordPressがインストールされているフォルダに FTPでアップロードします。
 
http://{WordPressのURL}/chmod_wp.php にアクセスします。
 
20140924_wp_01
 
ファイルリストを作成する条件を設定し、「ファイルリスト表示」をクリックすると条件に合致するファイルの一覧が表示されます。
 
 
20140924_wp_02
 
表示されたファイルの一覧の中からパーミッション(属性)を変更したいファイルにチェックを入れ、「パーミッション」を設定し、「パーミッション変更実行」をクリックすることでパーミッション変更が実行されます。
確認画面はありませんのでご注意ください。
 
 
20140924_wp_03
 
実行修了すると、パーミッションの変更が処理されたファイルのパーミッションは赤字表示され、「設定されたパーミッション」も表示されますので、パーミッションが変更されたことを確認してください。
 
 
なお、万一の事故防止のため、指定するファイルのチェックと、パーミッションの値は毎回入力していただくようになっています。
 
 


 

「パーミッション一括変更ツール(WordPress最適化済)」初期設定について

 
「パーミッション一括変更ツール(WordPress最適化済)」は、WordPressがインストールしてあるフォルダに入れて、そのまま使えるようになっています。
WordPress最適化済なので!
 
ですが、違う設定で対応したい方には初期設定で変更できるポイントが 2カ所用意していますので、解説しておきます。
 
 

 
初期値の 1行目。
デフォルトのフォルダを「”.”」と設定していますので、WordPressがインストールしてあるルートフォルダにこのプログラム本体を置いて使うことを想定しています。
PHPの設定方法が分かる方はパスを適当に変更して使ってください。
 
初期値の 2行目。
このプログラムファイル本体である「chmod_wp.php」はプログラムの一覧には表示されない仕様にしています。
もし、プログラムのファイル名を「chmod_wp.php」から変更して使う場合はここを見直してください。
 
 

「パーミッション一括変更ツール(WordPress最適化済)」を使う上での注意事項

 
自己責任において使ってください
デバッグは行っていますが、不具合等により問題が発生したとしても当方は一切責任を負えませんので、自己責任において使用してください。
 
 
サーバによって使えないサーバもあります
このサイトのサーバであるロリポップサーバでは動作を確認しましたが、その他のサーバでも動作する保証はありません。
サーバによっては、FTPユーザと Apacheのユーザが違うなど PHPのプログラムからパーミッションの変更が行えない場合があります。その場合はあきらめるしかありません。(このサーバでは動きました、このサーバでは動きませんでした、の情報をいただけると嬉しいですっ!!)
 
ただ、その場合でもファイルのパーミッション一覧ツールとしては使えますので、FTPツールによるパーミッションの変更をしたのち、全てのファイルのパーミッションが正しく変更されているかの確認には利用できます。
 
 
PHP 5.3以上でしか動きません
プログラムに無名関数の処理を使っていますので、PHPのバージョン 5.3以上でないと動かないと思います。
環境がないために 5.2以下でどのようになるかは確認していませんが。
 
 
利用に際しては一度実験をしてください
実験セットファイル一式もおいておきますので、いきなり WordPressで動作確認をするのではなく、まず最初に実験セットで試してみることをおススメします。
 
 
設定変更が終わったらサーバから削除してください
chmod_wp.phpのプログラムは、パーミッションを変更するツールですので、使い終わったらサーバから削除しておきましょう。
そのままサーバに残しておいて、万一外部のユーザが勝手に使ってしまったは大変なことになってしまいますので。
 
 
万一の事態に備えてバックアップをしてください
プログラムを実行した際に、万一動かなくなる自体を想定し、バックアップを取っておくことをオススメします。
バックアップは BackWPupという便利なプラグインがあります。「BackWPupでWordPressのDBもファイルもバックアップ」に記事を書いていますので、参考にしてください。
 
 

「パーミッション一括変更ツール(WordPress最適化済)」開発の経緯

 
WordPressに限りませんが、Webサイトを運営するうえでファイルのパーミッションの設定はセキュリティを高める上で基本的なことでありながら重要な項目です。
 
FC2からWordPressに引越。インストールなど必要な全てを解説(セキュリティ対応のためのパーミッションの設定を再確認)」などセットアップやセキュリティの記事でもファイルのパーミッションの設定について言及しています。
 
 
ロリポップのサイト「http://lolipop.jp/security/#p-permission」にはロリポップサーバではどのようにパーミッションを設定するといいのかが書いてありますので、セキュリティ向上のためには正しくパーミッションを設定する必要があります。
ロリポップ以外のサーバではそれぞれのサーバの指定に合わせて設定すべきですが、ロリポップの設定は参考になるでしょう。
 
ちなみに、ロリポップが詳しく説明している理由は「ロリポップで非常に大きなハッキング騒動がありました。」の騒動があったことに要因があるのでしょう。
 
 
とはいえ、インストールした直後でも WordPressのファイルは 1200弱、フォルダは 130ほどあり、階層も深いものもあるなど、チェックするだけでも大変です。
 
運営をしているサイトが一つだけならば、一回限りの作業と腹をくくって力技でも問題ありませんが、業務などで定期的に WordPressサイトを構築している方なら何とかならないものか、と思ってもいて不思議ではありません。
 
SSHが使えるサーバならばコマンドで一括変更する方法もあるわけですが、ロリポップなどのレンタルサーバでは SSHが使えないものの方が多いため、FTPで一つずつ対応していく必要が出てきてしまうため、途中で面倒になって中途半端な設定のままにしている方も多いのではないでしょうか。
 
 
というわけで、自分自身で使いたくて、必要だったからこそ作ったアプリケーションです。
 
「必要だったから作ってみたシリーズ第4弾」です。
 
引き続き、必要なツールが出てきたら作っていきますのでよろしくお願いいたします。
「こんな感じのツールはないですか?」と要望があれば作るかもしれません。私自身が使いたいと思えば...
 
 

プログラムに関する解説

 
プログラムの中に出てくる、パーミッションを変更する chmod関数、10進数を 8進数に変換する octdec関数についての解説を「PHPパーミッション変更のchmod関数・モードを変数で指定する方法」で行っていますので、興味がある方はご覧ください。

 - PHP・Smarty・ECCUBE

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Comment

  1. まみねこ より:

    めちゃくちゃありがたいです。
    WPをインストールしたサーバーのフォルダほぼ全てのパーミッションが700になってて、正常に表示されない状態でした。
    サーバーのコマンド?操作とかまったくわからないので、FTP内で手動でちまちま変えていました。

    かなり気が遠くなるな…と思っていた所、検索して記事みつけました。
    本当にありがとうございます。

    他にも何の記事か忘れてしまって恐縮なんですが、とても詳しく書かれていてすごく役に立った記憶があります。
    ありがとうございました。

    • エス技研 より:

      まみねこさん、コメントありがとうございます。
      お役に立てたと言うことで、すごく嬉しいですね。
       
      もともと私も WordPressのパーミッションを変えるのが大変だったので、作ったものなんです。
      WordPressをインストールした後にパーミッションが違う、って気がつくと途方に暮れますよね。
       
      ただ、このツールは使い終わったらサーバから消してくださいね。
      残したままにしておくと、ハッキングされるリスクなどになりますので。

  2. あんず より:

    初心者のため、コマンド等のやり方が分からず、パーミッション設定を1つ1つ変えていたんですが、めんどくさくなってしまい、一括変更出来ないかと色々探したところ、こちらの記事を見つけダウンロードさせて頂きました。
    数字を変更する段階で、早速数字を0に変更しようと思ったのですが、変更出来る数字が1~7となっていました。こちらのツールで0を指定することは可能でしょうか?

  3. エス技研 より:

    あんずさん、コメントありがとうございます。
     
    連絡の件ですが、現在配布しているプログラムは、「0」は選択できないようになってしまっていますが、chmod()関数は「0」を設定することもできます。
    そのため、お手数をおかけしますが、225行目の for文の「$ii = 1;」を「$ii = 0;」に変えていただければ、「0」も選択できるようになります。
     
    近いうちに配布しているプログラムも修正をしておこうと思います。

  4. あんず より:

    chmod()関数について教えて頂きありがとうございました。
    時間がかかってしまいましたが、無事関数を「$ii = 1;」から「$ii = 0;」に変えることが出来、お陰でパーミッションの数字設定欄に0が表示されるようになりました。すぐにファイルを指定し、「パーミッション変更実行」をしたのですが、「パーミッションの値が正しく設定されていません。」とエラーメッセージが表示され変更できませんでした。
    他に変更する箇所があれば教えて頂ければと思います。

    • エス技研 より:

      あんずさん、コメントありがとうございます。
      ご連絡いただいた件、chmodの入力で、数値が選択されていないと入力エラーにするという処理をしていました。
      「0」の場合もエラーとなっていました。
       
      その辺りの処理を変更したものを作成し、下記のダウンロードサイトにアップし直しましたので、改めてダウンロードしてみてもらえませんでしょうか?
      https://s-giken.info/chmod/index.php
       
      よろしくお願いします。

  5. あんず より:

    エス技研さん。ありがとうございます。
    先ほど、ダウンロードさせて頂き、パーミッションの設定を実行してみたところ、無事、0も設定することが出来、全てのパーミッションを設定することが出来ました!

    丁寧に教えて頂き、また、プログラムの修正もして頂き、とても助かりました。エス技研さんのお陰です。本当にありがとうございました。

    • エス技研 より:

      あんずさん、コメントありがとうございます。
      多くの方に使っていただこうと公開しているプログラムですので、ちょっとした対応でより使い勝手がよくなるような対応は今後も実施していこうと思っています。
      また何かお役に立てることがあればいいな、と思っています!

あんず へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

路線・駅検索のために緯度経度からPHPで簡易的に距離を計算する処理解説
路線・駅検索のために緯度経度からPHPで2点間の距離を計算する処理解説

路線・駅検索の仕組みの構築は大変。それを簡易に実装するために緯度経度を元に距離計算をする仕組みを考案。まずは2点間の距離を計算する仕組みを解説し、距離計算にまつわる関連技術も紹介。

XML形式の値を配列形式に変換・PHPでは simplexml_load_string()
XML形式の値を配列形式に変換・PHPでは simplexml_load_string()

XMLとは「Extensible Markup Language」の略でテキストベースのデータフォーマット。XMLをPHPで配列に変換するWebツールの紹介とその処理「simplexml_load_string()」関数についての解説。

ECCUBEを開発環境から本番ドメインに変更でエラーが・パス変更について

レンタルサーバでサーバ会社から割り当てられたURLで開発し、本番公開時にドメインを当てたらエラーが!そんな場合の対処方法の解説。対処方法は簡単ですが管理画面からは対応不可。

PHPのソースで見慣れない記号が出てきた・アロー演算子(->)、ダブルアロー演算子(=>)

PHPのプログラムソースには見慣れない記号が出てきます。その意味や調べ方です。

ECCUBEの注文完了画面注文番号と商品情報を編集するCRITEO(クリテオ)タグを編集

ECCUBEの注文完了画面にクリテオのタグを編集する方法を紹介。標準機能では完了画面に注文IDや購入商品の情報を渡さないため改修が必要です。

ob_start、ob_get_contents関数でPHPの標準出力をバッファリング・変数に代入

標準出力をバッファリングし変数に代入することができるob_start()関数の解説。include()の処理をバッファリングすることで自由な場所に処理を記述することが可能。

路線・駅検索をPHPで実装する方法解説。GoogleMapsの緯度経度から計算し検索
路線・駅検索をPHPで実装する方法解説。GoogleMapsの緯度経度から計算し検索

路線・駅検索の仕組みの構築は大変。登録する側も最寄り駅が多い場合は大変。なので簡易に実装するため緯度経度に基づき直線距離を計算する処理を考案して実装して、その処理を解説。

フォルダを指定してファイルのパーミッションを変更するプログラム

フォームからフォルダ、パーミッションを指定しパーミッションを変更するサンプルプログラムの解説です。

Smartyの Syntax Errorの原因はスペースかも

Smartyのなかなか原因がつかめない Syntax Errorの原因はスペースかもしれません。

QRコード作成ライブラリ「cakePHP-QR-Code-Helper」をPHPで使うカスタマイズ
QRコード作成ライブラリ「cakePHP-QR-Code-Helper」をPHPで使うカスタマイズ

CakePHP2用のQRコード作成ライブラリ「cakePHP-QR-Code-Helper」をプレーンのPHPでも使うためのカスタマイズ方法を解説。1ファイルを設置するだけでQRコードが作れるため使い勝手がいい。