• ベストアンサー

PHPで直接属性の変更はできないでしょうか?

PHPやPERLで直接ファイルの属性を変更できるか試みています。どうもできなさそうであきらめようと思ったんですが、本当にできないのか?ちょっと疑問がのこります。直接PHPファイルにパーミッションを644から744に書き換えるスクリプトを試みていたんですが。。もしどちらさまかわかる方がいらっしゃいましたら暇なときに回答ください、待ってますΣo(≧ヘ≦o)。無理なら無理ということであきらめます。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

PHPの実効ユーザーにパーミッション変更の権限がなければどうしようも ないでしょう。 また「直接」というのがどこまで直接なのかにもよりますが、 system系の関数でsudoをかまして、スーパーユーザーとして実行すれば chmodでもchownでもなんでもできますね ちなみにファイルシステム系の質問をするならOSくらいかかないと 混乱の元ですよ

hikarara
質問者

お礼

そうなんですか、OSはfedora なんですが、「sudoをかまして、スーパーユーザーとして実行すれば」とかちょっと難しいですね。う~んちょっと勉強不足でした。もういちど勉強しなおしてきます(/ー\*) 。アドバイスありがとうございます。

その他の回答 (2)

  • kozaiku
  • ベストアンサー率41% (256/616)
回答No.3

パーミッションを書き換えようとした対象のファイルはFTPでアップロードしたものではありませんか? 元のパーミッション644(つまり所有者以外は変更禁止) FTPのタスクの実行者と、PHPスクリプトの実行者が同じでなければ変更はできないはずです。(同じになるかどうかはサーバーの設定しだい) PHPスクリプトでファイルを生成し、それに対してパーミッションの変更をしてみましょう。変更できるはずです。

hikarara
質問者

お礼

そうなんですかぁ(/ー\*) 。FTPのタスクの実行者と、PHPスクリプトの実行者が同じでなければ変更はできないんですね。PHPスクリプトでファイルを生成し、それに対してパーミッションの変更というのをためしてみます。アドバイスありがとうございました。

noname#26650
noname#26650
回答No.1

chmod関数というのが使えるのではないでしょうか。

hikarara
質問者

お礼

なるほど、アクセス権を変更する関数なんですね(/ー\*) 。使えそうなのでちょっと試してみます。アドバイスありがとうございます。