私は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スクリプトを実行しているユーザーを確認してください。