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

관련 정보