2013-01-02 3 views
7

私は、特定のフォルダにファイルをアップロードするPHPスクリプトを持っていますが、現在は「psacln」グループとしてアップロードしていますので、FTPでファイルを削除できます。これは、PHPがFastCGIとして実行されていたときにうまく動作していたため、PHP拡張モジュールを動作させるためにPHPをApache Moduleとして実行する必要がありました。しかし、今は許可が拒否されているので、PHPスクリプトでファイルを削除することはできません。私は今、グループ 'Apache'が 'psacln'に属するファイルを削除しようとしているからだと思います。どのようにしてこれらのファイルを削除することができますか?ユーザグループファイルへのApacheアップロードアップロードの許可

EDIT:LS -alF

drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 14:05 92/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 06:57 93/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 14:12 95/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Dec 21 18:56 96/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Dec 21 08:30 97/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 14:26 98/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 14:28 99/ 
+0

少なくとも、 "Apache"グループの権限をroot/sudoで付与する必要があります – Raptor

+0

Apacheのユーザーグループを持つためには親フォルダが必要です。実行可能でなければなりません。 – Sahal

+0

どのLinux V? – Sahal

答えて

13

このシステムへのシェルアクセスとルートアクセスがあるとします。その場合は、/etc/groupファイルにapacheユーザー(通常はapacheまたはwww-data)を追加してみてください。

usermodを使用するのが適切な方法ですが、通常はファイルを直接編集するだけです。要するに

Apacheのユーザーがapacheであれば、試してみてください。

sudo usermod apache --append --groups psacln 

これは、基本的にpsaclnグループによって所有されているすべてのファイル&ディレクトリにapacheのユーザアクセスを提供します。

これでうまくいかない場合は、ファイルのアクセス許可(ls -alF)を持つディレクトリの例を投稿してください。

EDIT:

sudo nano /etc/groups 

psaclnグループを見つけ、apacheユーザーを追加します:

直接ナノ(あなたが快適だ方エディタで代替)を使用して、グループファイルを編集するには

psacln:x:130:apache 

gid(130)は間違いなく異なることに注意してください。

+0

は動作しませんでした。phpは' apache:apache'として実行されています。 'usermod:user psacln does not exist ' – keeg

+0

' sudo groups psacln'を実行するとどうなりますか?ディレクトリリストの編集に '.'ディレクトリを含めることもできます。 – hafichuk

+0

'id:psacln:そのようなユーザーはいません' – keeg

-4

(すべてのユーザーに対してWRX)777にアップロードディレクトリのアクセス許可を設定します。あなたはまだ新しいファイルをアップロードできますか?できれば、ファイルを削除できるはずです。

+0

再帰アクセス許可を設定する必要があります。親フォルダにも権限が必要です。 – Sahal

+0

他のユーザーとサーバーを共有しない場合、777は安全なアクセス許可になります。あなたは子供のディレクトリを持っているので、777の許可も必要です。表示されたディレクトリから 'chmod -R a + w .'を実行します。それが動作しない場合は、いつでも元に戻すことができます。 psaclnグループにapacheを追加すると、 'chmod -R g + w 'というグループ書き込み許可を設定する必要があります。 –

関連する問題