![cp: 일반 파일을 생성할 수 없습니다: 권한이 거부되었습니다.](https://linux55.com/image/139519/cp%3A%20%EC%9D%BC%EB%B0%98%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%83%9D%EC%84%B1%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4%3A%20%EA%B6%8C%ED%95%9C%EC%9D%B4%20%EA%B1%B0%EB%B6%80%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
저는 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 스크립트를 실행하는 사용자를 확인하세요.