저는 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 스크립트를 실행하는 사용자를 확인하세요.