• ベストアンサー

パーミッションが644でも実行できてしまう現象

ファイルのパーミッションをchmodで644に変更したのですが、phpコマンドが実行できます。これはサーバに別の設定のようなものがあるのでしょうか?

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5069/13244)
回答No.1

php本体に実行権があれば、プログラムファイルは単なるデータファイルの扱いなので実行可能です。

assari22
質問者

お礼

なるほど、理解しました。 回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPを使ってのサーバ上ファイルのパーミッションの変更方法

    PHPおよびPEARを使って、FTPサーバ上のファイルのパーミッションの変更をしたいと考えています。 具体的には、 PEARを利用し、$ftp->put()でアップしたファイル($filename)を、700に属性変更したいのです。 ソース上は、 chmod($filename, 0700); と書いています。 ところが、実行すると以下のようなワーニングが出ます。 「Warning: chmod() [function.chmod]: No such file or directory in ・・・」 今度は、 $ftp->chmod($remote_folder[$i]. $filename, 0700); と書いて実行してみるとエラーは出ません。 しかし、パーミッションは変わっていませんでした。 次に、 「PEARの命令を使って実行すればいいんだ!」と考えて、 $ftp->execute(chmod($filename, 0700)); と書いて実行してみました。 結果は、最初と同じ、 「Warning: chmod() [function.chmod]: No such file or directory in ・・・」 というワーニングでした。 いったい何がいけないいんでしょうか(--; phpのマニュアルを見ると、chmodに、「この関数では、 リモートファイルを使用することはできません。」とあります。 が、教えて!gooなどで検索してみると、chmodを使って普通にサーバ上のファイルのパーミッションを変更している書き込みが見られます。 正直、混乱しているというか、よく分からない状態です。 皆様、気がついた点などありましたら、是非、アドバイスお願い致します。

    • ベストアンサー
    • 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
  • 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
  • Perlでのパーミッション変更の仕方

    perlでパーミッションの変更を使おうと思っているのですが、うまくいきません。 chmod(0750,$file);ではただしく実行されるのですが、 $per = "0750"; chmod($per,$file);にすると、0356になってしまいます。 なぜ変数ではできないのでしょうか。 よろしくおねがいします。

    • ベストアンサー
    • Perl
  • パーミッションの変更について

    rwxr-wr-w rwxr-wr-- rwxr-wr-t の内容のテキストファイルのパーミッションの変更コマンドをシェルスクリプトで書くにはどうしたらいいのかわかりません。 おしえていただくとありがたいです。 最初の一文字づつを読み込んでchmod ???と数字がでるようにしたいのですが 実行結果 ./a.txt r w x r - w r - w chmod 755と実行結果がでるようにしたいです。if文を沢山つかうのですか?

  • パーミッションの変更

    RedhatES3.0サーバです。 複数のディレクトリ及びファイルのグループの変更「chgrp -R」を行おうしたら、 誤って「chmod -R」をやってしまった様で権限が変わってしまいました。 それを元に戻したいのですが、「chmod -R」で変えるとファイルもディレクトリも同じ設定になりますが、 ファイルは「644」、ディレクトリは「755」に設定したいです。 この設定をまとめて実行する方法は無いのでしょうか。

  • Web上からパーミッションの変更

    Web上から、majordomoの定義ファイルを変更しようと考えています。 管理は別のツールを使用するのですが、一部カスタマイズしたいところ があるので、独自に作ろうと思います。 対象のファイルは、下記のような設定になっています。 -rw-r--r-- 1 majordomo majordomo 108 8月 25 11:10 testml1 「chmod(646, "testml1")」という感じでパーミッションを変更したいの ですが、Webサーバ(apache)はnobodyで動作しているため、そのままでは 変更できません。 上記ファイルをあらかじめ変えておけば良いのではないかと思われるかも しれませんが、別の管理ツールを使用するとパーミッションが元に 戻ってしまうため、プログラム上で変更したいと考えています。

    • ベストアンサー
    • Perl
  • パーミッションの 読み取り、書き込み、実行 とは?

    パーミッションの「読み取り・書き込み・実行」について教えてください。 PHPとMySQLの初心者でその他プログラミング言語(C言語やCGIなど)の知識はありません。 Q1.「読み取り(Read)」について 「ファイルの読み取りや、ディレクトリの一覧参照が可能」と書かれていました。 この読み取りとはどういう状態のことですか? Q2.「書き込み(Write)」について 「ファイルへの書き込みや、ディレクトリ内のファイルの削除、新規作成、名前変更が可能」と書かれていました。 この書き込みとはどういう状態のことですか? Q3.「実行(Execute)」について 「ファイルを命令として実行可能、ディレクトリにアクセス可能」と書かれていました。 これはPHPなどのプログラムファイルを指しているのでしょうか?そうだとしたらプログラムファイル以外のファイルにこの指定は不要ですか? また「ディレクトリにアクセス可能」とはどういう状態のことを指すのでしょうか?読み取りや書き込みの場合、必ずファイルにアクセスして行われると思いますが、指定が別になっているのはなぜですか?アクセスの意味を勘違いしているのでしょうか? 尚、勘違いしている部分があれば訂正をお願いします。

  • php ワイルドカードを使って複数のファイルのパーミッションを変えたい

    PHPのchmod関数をつかってパーミッションを変えたいのですが ファイルが膨大な為、ワイルドカードをつかって一度に 変更しようとしました。 が、 chmod("/home/public_html/hoge/hoge/*.jpg", 0755); のように記述したんですが、ワイルドカードの記述方法が 間違っているらしく、うまく作動しません。 どうすれば、膨大なファイルを一度にパーミッション変更することが 可能なのでしょうか?

    • ベストアンサー
    • PHP
  • chmodでパーミッションを変更する権限がないエラー・・・?

    レンタルサーバ「ロリポップ」を使用しています。 chmod命令で、ディレクトリやファイルのパーミッションを変更するプログラムを書きました。 chmodr($filename,0700); そうすると以下のようなエラーが表示されます。 Warning: chmod() [function.chmod]: Operation not permitted パーミッションを変更する権限がないために発生していると思うのですが、どうすればプログラムからパーミッションを変更することができるのでしょうか? ちなみにperlでは可能でした。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • ディープスリープで印刷できないトラブルについての相談
  • ファームウェアを更新してもディープスリープで印刷ができない状況
  • ブラザー製品のディープスリープモードでの印刷に関する問題
回答を見る