cp:一般ファイルを生成できません:権限が拒否されました。

cp:一般ファイルを生成できません:権限が拒否されました。

私はApacheサーバーでPHPスクリプトを実行しており、ファイルをコピーするBashスクリプトを実行するためにスクリプトからいくつかのファイルをコピーする必要があります。問題なくディレクトリにコピーできますが、/tmpにコピーしようとすると、/tmp/foo次のエラーが発生します。

cp: cannot create regular file '/tmp/foo/file.txt': Permission denied

ディレクトリの権限が同じ値に設定されている場合も/tmp同様です。/tmp/foo

何が問題なのか知っていますか?

答え1

/tmpディレクトリには、すべてのユーザーに対するフルアクセス権(読み取り/書き込み)があります。しかし、/tmp/foo自分のアカウントで作成した場合は、あなたにのみ設定された権限があります!他のユーザー(またはプログラム)が書き込みを許可するには、次のコマンドを使用して権限を変更します。

chmod 777 /tmp/foo

以前にこのディレクトリに別のファイルがあった場合は、上記の-Rコマンドにフラグを追加してください。

修正する:/tmp/foo所有者を自分のユーザーからApacheのデフォルトユーザーに変更するには、次のコマンドを使用します。

sudo chown www-data:www-data /tmp/foo -R

また、apache2設定を確認して、PHPスクリプトを実行しているユーザーを確認してください。

関連情報