レンタルサーバーでのファイルのパーミッション設定方法とは?

このQ&Aのポイント
  • レンタルサーバーでのファイルのパーミッション設定方法について説明します。
  • グーグルなどで検索したが、正常に機能しない状況が続いている質問者のために、ファイルのパーミッション設定のポイントを解説します。
  • レンタルサーバーにおけるファイルのパーミッションの設定方法について、アドバイスをお伝えします。
回答を見る
  • ベストアンサー

パーミッションについて

こんにちは。お世話になっております。 あるサイトを作成しておりますが、そのサイトの機能の一部に、 サイト管理者がログインして書き換えられるphpファイル、txtファイル。 サイト訪問者が書き換えられる、phpファイル、txtファイル。 というものがあるのですが、レンタルサーバーでの運営において、上記ファイル、およびそのファイルが格納されているフォルダのパーミッションは、どのように設定したら宜しいのでしょうか? グーグルなどで検索して、パーミッションの設定をいくつか変えてはいるものの、正常に機能しない状況が続いています。 お忙しい中恐縮ですが、アドバイス頂ければと投函させていただきました。宜しくお願い申し上げます。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

セキュリティを無視して絶対に動くようにということを重要視するなら、777ですね。 これで動かない場合は、パーミッションの問題ではなく、別の問題で正常に動作しないと判断できます。 777で正常に動作するなら、PHPにしてもTXTにしても、おそらく606に設定すれば良いでしょう。 頭の6は自分が読み書きできる、FTPでアップダウンするのに必要です。 末尾の6はApache経由で閲覧者がPHPを動作させたり、書き込んだりに必要です。 他の書き込み不要なものに関しては、604でいいです。 フォルダは、それらに実行可能属性を付けて PHPから書き込みが必要なフォルダの場合、707。 書き込みが不要なフォルダの場合、705です。 ま、777でセキュリティに問題があるって言っても、実際のところ誰でも読み込みできる場所に重要なデータを置くことが大問題なので、それがなければ確実に動かせるようにすべて777でも問題ではないですけどね。 どちらかというと気持ちの問題。

mayu_chap
質問者

お礼

BellBellさんへ こんにちは。早速のアドバイスをありがとう御座います。無事、正常に機能することが出来ました! パーミッションの設定に不慣れでは御座いましたが、考え方も書込みいただき、少し理解が深まった気がします。 お忙しいなかご丁寧なアドバイスをありがとう御座いました。

関連するQ&A

  • akiraインターネットのパーミッション設定

    akiraインターネットとレンタルサーバー契約をしています。PHPを使ってWebアプリを作ろうとしているのですが、パーミッション設定に泣かされています。。。 ./test (707) ./test/test.php (705) ./test/test2.txt (700) というファイル構成、パーミッション設定になっています。 test.php では test2.txt が存在するかどうか、書き込み可能かどうか、パーミッションはどうなっているかを出力するようにしてみました。 ----test.php------------------------ if ( (file_exists('test2.txt') )) { print "ファイルは存在します。"; }else{ print "ファイルは存在しません。"; } if ( (is_writable('test2.txt') )) { print "書き込みできます"; }else{ print "書き込みはできません"; }   $perms=fileperms('test2.txt');   var_dump($perms);   printf("%o\n",$perms); --------------------------------- 実行すると「ファイルは存在します。書き込みはできません。int(33216) 100700」 と表示されてしまいます。たぶんパーミッションの設定が悪いのだと思いますが、どうやったら書き込みできるようになるのかよくわかりません。 akiraのFAQでは 「モジュール版の PHP をご利用される場合は拡張子を PHP4 は .php 、PHP3 は .php3 として、パーミッションを 604 に設定してください。 モジュール版の PHP スクリプトを格納するディレクトリのパーミッションは 701(または705) に設定してください。PHPスクリプトからディレクトリ内のファイルに書き込みされる場合は 707 としてください。」 という記述があるのですが、?!?!です。 http://www.akira.ne.jp/support/start.htm#4 対処法などを教えていただけないでしょうか? お手数ですがよろしくお願いします。

  • パーミッションの設定

    最近 PHP と MySQL の勉強をはじめました。 パーミッションについて教えてください。 サーバをレンタルしてPHP で MySQL に接続してデータを読み込んでいます。MySQL に接続する際の サーバ名,ユーザ名,パスワード,データベース名 は info.php という別のPHPファイルに書き込み、それを require_once(info.php) で読み込んでデータベースに接続しています。 info.php は data というディレクトリに格納していますが、セキュリティのためにパーミッションを設定したほうがいいと聞いたのですが data と info.phpのパーミッションはいくつにしたらよいのでしょうか?

    • ベストアンサー
    • PHP
  • パーミッションの環境

    実行パーミッションを700 データファイルを600 CGI格納ディレクトリを705 データ格納ディレクトリを700 レンタルサーバーによっては上記設定でCGIスクリプト等のパーミッションを設定できます。 ですが、VineLinuxで構築したうちのサーバーでは、CGIのパーミッションを755に、 読書き用データファイルを666にしないと動作しません。 http://www.kent-web.com/support/faq/faq3-2.html#6 上記ページの説明にもありますように、700や600で設定できる環境のほうがセキュリティ上好ましいそうですが、方法がわかりません。 VineLinuxではこのような環境を構築することは不可能なのでしょうか?可能でしたら、方法、または参考になるサイトを紹介していただければ幸いです。

  • qhm7.3.7のパーミッションについて

    qhm7.3.7をレンタルサーバーにアップロードしましたが、 パーミッションの設定がわかりません。 参考にしたサイトは以下です。 https://haik.oi21.net/index.php?vup_420_730 パーミッションを設定します。シェルが使えるようなら以下の様な感じです。 chmod 707 wiki diff backup cache cacheqblog counter chmod 606 wiki/* chmod 606 cache/* chmod 606 qhm.ini.php chmod 606 qhm_users.ini.txt chmod 606 qhm_access.ini.txt chmod 707 swfu/d/ chmod 707 swfu/data/ chmod 606 swfu/data/* chmod 707 cacheqhm chmod 606 counter/* chmod 606 diff/* chmod 606 attach/* chmod 707 attach chmod 606 backup/* よろしくお願いします。パーミッションの設定が合わなくて困っています。

    • ベストアンサー
    • PHP
  • パーミッションの設定

    質問1: 通常、フォルダ、HTMLファイル又はPHPファイルをサーバへFTPでアップロードする時は、パーミッションの設定をどのようにすればよいのでしょうか?現時点の構成では、フォルダのパーミッションが765で、全てのファイルのパーミッションが664でもサイト自体は動作はしますが、これでセキュリティ上問題ないですか? 特に「オーナー」と「グループ」のパーミッションというものが何なのだか良く理解できていません。サーバは、レンタルサーバを使用しています。「オーナー」がサーバを借りている自分ということは検討がつくのですが(オーナー=サーバを借りている人ですよね??)、いくら自分がオーナーでも自分が通常のブラウザーから自分のサイトにアクセスした場合、それが一般の人なのかそれともオーナーなのかなんて私のサイトに分かるはずもないと思います。 それでは、オーナーのパーミッションとはどのような時のために設定するのでしょうか?また、グループってだれのことですか? 質問2: ベーシック認証をかけたフォルダー内のパーミッションの設定に関する質問です。 通常、.htpasswd、.htpasswd及びベーシック認証がかかっているフォルダ内のパーミッションは765に設定して、そのフォルダ内のの全てのファイル(.htpasswd及び.htpasswdも含めて)の属性(アクセス権)は604に設定するのですよね? それとも、.htpasswd及び.htpasswdのファイルの属性を604に設定すれば、ベーシック認証がかかっているフォルダ内の他のファイルの属性は604にする必要はないのでしたっけ(664などでも良いのでしたっけ?)? よろしくお願いします。

  • さくらインターネットでのパーミッションについて

    こんばんは。お世話になっております。 友人に頼まれてサイトを作成したのですが、その中で管理者専用ページがあり、ログインパスワードなど任意で変えられるよう、別ファイルにdifine()を用いて(そのファイルに任意のパスワードなどを書込み)いるのですが、一度ログインするものの、ページを移動するとdifineを参照できないためか、ログイン状態を保つことが出来ません。 また、通常の(管理者以外が閲覧する)ページでも、訪問者が書込みできるようプログラムを組んでいるのですが、これも正常に機能する事が出来ません。 以上、書込みができる作りのため、書込み可能なファイルを設置しているディレクトリの属性を707とし、その各ファイルを606として、当初、当方で借りているサーバーでテストを行っていたのですが、こちらは何ら問題なく動作するものの、友人の借りている、さくらインターネットでは正常に機能する事が出来ないのです。 色々と調べて現在分かった範囲では、さくらインターネットではPHPをCGIとして動かしているため、ディレクトリに設定した707や、各ファイルに設定した606は利用出来ないとまでは分かったのですが、サイトの性質上、書込みができるよう設定するには、どのような対処を行えばいいのでしょうか? 乏しい知識ながらも、数が月かけて作り上げたサイト。。完成を控えてのこの状況に困り果てています。。 お忙しい中恐縮ですが、お知恵を頂戴したく投稿させていただきました。宜しくお願い申し上げます。

    • 締切済み
    • PHP
  • パーミッションの考え方。

    サーバー(リモート): XREAのレンタルサーバー(Linux系) テストサーバー(ローカル): Windows版XAMPP (Version: 1.8.1) FTPソフト: FFFTP DB: SQLite3 ----- 使用するディレクトリ、ファイルのパーミッションの設定のしかたがよく分からず、 困っています。 使用するファイル、ディレクトリは以下の通りです。 phpスクリプトファイル(3種類) (1)全ての人からウェブブラウザ経由でアクセスされて動く --- a1 (2)phpスクリプトから呼ばれた時にのみ使われる --- a2 (3)管理者のみがアクセス --- a3 DBファイル(.sqlite3) --- b1 画像ファイル --- c1 <位置関係(Document Root を基準に書かせてもらいます。)> Document Root --- a1.php Document Root --- sub --- a2.php Document Root --- admin --- a3.php Document Root --- db --- b1.sqlite3 Document Root --- img --- c1.jpg 上記のような場合、 (ディレクトリ) sub admin db img (ファイル) a1.php a2.php a3.php b1.sqlite3 c1.jpg これら、4つのディレクトリと、5つのファイルは、 それぞれ、具体的には、どのようにパーミッションの設定をしたらよろしいでしょうか。 (考え方も含め、ご教示頂けますと助かります。) それと、 パーミッションの話で出てきます、 「自分」、「グループ」、「他人」 とは、一般的に、 レンタルサーバー(特に知りたいのはXREAの場合。)においては、 それぞれ具体的には誰を指しますでしょうか? (「グループ」に属すユーザというのは誰のことなのでしょうか?  もし存在しないという場合には、「グループ」のユーザの権限は、  すべて「0」でも大丈夫でしょうか。) また、細かい話にはなりますが、 あるユーザに、DBファイルへの書き込み権限を与え、その一方で、 そのDBファイルへの書き込みを実際に実行するPHPスクリプトファイルの 実行権限を与えない、なんていう場合には事実上、 そのユーザは、「そのDBファイルへの書き込みはできない」 ということになりますでしょうか。 また、phpファイルを「読む」 と、「実行する」では、 動作上、どのような違いがあるのでしょうか。 phpファイルを「読むだけ」というのが、 どのような動作なのか、よく分からなかったもので。。。 どうぞ、よろしくお願い致します。 (レスポンスは確実に致します。)

    • ベストアンサー
    • PHP
  • chmodでのパーミッション

    実行すると、同じディレクトリにあるディレクトリとその中のファイルを同じ階層にディレクトリを新規に作って、その中のファイルを全部コピーするスクリプトを組んでいます。 コピーはうまくいったのですが、パーミッションの設定がうまくいきません。 例えば @chmod("$dir/xxx.cgi",0755)or die("エラー"); と書くと、パーミッションは363になってしまいます。 5ファイルくらいあるのですが、他のパーミッション(例えば666など)も137になってしまいます。 Webを検索してもこういった事例にはおめにかからないのですが、私の使っている2つのサーバーで、どちらも同様の結果でした。 何がいけないのでしょうか? よろしくお願いいたします。 #ついでにmkdirも作成はできるのですが、パーミッションが必ず755になってしまいます。 #作成されたディレクトリやファイルのownerは、1つめのサーバーではnobody、もう一つのサーバーではログインユーザーになります。 #サーバーはどちらもLinuxです。 #PHPのヴァージョンは、1つめが4.3.1、2つめが4.3.4です。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPのパーミッションの設定について

    PHPのパーミッションの設定について 自分でアパッチを設定したのですが、 自分のサーバーでPHPのテストをするには サーバーと同じようにパーミッションの設定をしないといけないです。 これはどうやったら出来るんでしょうか? また、詳しくファイルの性質ごとに属性を変える基準がかいてるページは無いでしょうか? 分かる方教えていただけますか?

    • ベストアンサー
    • PHP
  • ユーザー名、パスワードファイルの安全性について

    phpでログイン画面を作っています。 入力されたユーザー名、パスワードが別ファイル(data.txt)の中身と一致すればログインできるという形なのですが、安全性はどうなのか疑問です。 現在の状態は、 パーミッションのその他の実行権限を外したフォルダを作り、その中にdata.txtを格納しています。 これだけではまずいのでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう