0

私は次の状況にあります:

public_html-755

=>アバター-777

=>ポーリング-755

次のコードを使用すると、エラーが発生します(警告:file_put_contents(../ test.php)[function.file-put-contents]:ストリームを開くことができませんでした:XXXでアクセスが拒否されました):

<?php
file_put_contents('../test.php','<?php');
?>

しかし、以下のコードを使用すると、問題なく機能します。

<?php
file_put_contents('test.php','<?php');
?>

(両方とも「アバター」から実行され、0777で)

どうすればこれを解決できますか?

4

2 に答える 2

1

スクリプトは、 0777権限(ワールド読み取り/書き込み/実行)avatarを持つから実行されているため、スクリプト内にファイルを作成できるのは通常のことです(例:) 。file_put_contents("test.php")

でファイルを作成できない場合public_html(つまりfile_put_contents("../test.php")、:)は、スクリプトを実行しているユーザー(おそらくApacheユーザー)がの所有者ではないためですpublic_html(所有者はおそらくFTPユーザーです)。0755は、所有者のみがディレクトリに書き込むことができることを意味するため、他のユーザーはディレクトリからの読み取りまたは実行のみが可能です。

シェルアクセス権がある場合chownは、ファイルの所有者を変更するために使用できます。

bash-4.1.5$ chown newuser public_html

またはchmod、非所有者に対してより高い権限を使用することもできますが、それに注意する必要があります。

于 2010-12-30T03:12:05.980 に答える
0

0777の権限があっても、上位のフォルダに書き込むことはできないと思います。

このディレクトリでchmodを使用することはできません。FTPなどを使用する必要があります。

于 2010-12-30T03:06:22.943 に答える