"eclipse"에서 새 파일을 생성할 때마다 읽기/쓰기 권한을 얻으려면 다음 두 줄의 코드를 실행해야 합니다.
chmod -R 775 /var/www/folder/filename.extension
그리고/또는
sudo chown -R www-data:www-data /var/www
그리고 일부 파일을 해당 서버 폴더에 복사하고 다음과 같은 브라우저 URL에서 액세스하면:
localhost/folder/filename.extension
Apache 서버에서 권한 오류가 발생합니다.
이 문제를 없앨 수 있는 방법은 없을까요?
*노트:move_uploaded_file()
내 기능이 파일을 디렉터리로 이동하려고 할 때 /var/www/MyProject/
주요 오류가 발생합니다 .
답변1
SGID 비트를 사용하십시오.
한 번만 수행하고 이 문제는 잊어버리세요.
chmod g+s /var/www/folder
모든 하위 폴더에 대해 동일한 작업을 수행할 수 있습니다.
find /var/www/folder -type d | xargs chmod g+s
그리고 만일의 경우에 대비해:
find /var/www/folder -type d | xargs chgrp www-data
/var/www/folder/
이제 무슨 일이 있어도 그 아래에 생성된 모든 파일은 포함된 폴더를 소유한 그룹에 속하게 됩니다. 이렇게 하면 파일이나 폴더가 속하지 않는다는 걱정 없이 파일이나 폴더를 만들 수 있습니다.www-데이터그룹, 그것이 당신이 원하는 것입니다.
이는 디렉터리 내에 생성된 파일이나 폴더에만 적용됩니다. 파일이 다른 곳에서 생성되어 디렉터리 트리로 이동된 경우에도 소유권을 수동으로 변경해야 합니다.
예:
# Create folder that belongs to www-data group
$ mkdir test
$ chown john.www-data test
$ ls -l
drwxr-xr-x 2 john www-data 4096 Jun 17 10:14 test
# Create a file, check the ownership
$ touch test/file1
$ ls -l test/
-rw-r--r-- 1 john users 0 Jun 17 10:16 file1
# Set the SGID bit
$ chmod g+s test
$ ls -l
drwxr-sr-x 2 john www-data 4096 Jun 17 10:19 test
# Create a file, check the ownership
$ touch test/file2
$ ls -l test/
-rw-r--r-- 1 john users 0 Jun 17 10:18 file1
-rw-r--r-- 1 john www-data 0 Jun 17 10:19 file2
추가 정보여기.
답변2
기본 ACL을 사용하여 새 파일 및 디렉터리에 사용자 및 그룹 권한을 할당할 수 있습니다.
setfacl -dR u:domain:rwx,g:www-data:rwx /var/www/folder/filename.extension
답변3
우선, 예를 들어 어떤 운영 체제, Linux 배포판을 사용하고 있는지 질문할 때 더 구체적이어야 한다는 점을 지적하고 싶습니다. 이렇게 하면 솔루션을 찾는 과정이 크게 빨라질 수 있습니다. 그렇게 말하면, 당신은 변경할 수 있습니다소유권그리고공동지원센터(사용자 액세스 제어)를 다음과 같이 반복적으로 수행합니다.
chown domain:www-data /var/www/folder -chR
chmod 775 /var/www/folder -cR
노트: 후행 슬래시를 제외하여(/)폴더 이름 끝에는 변경 사항이 폴더와 해당 폴더의 모든 내용에 적용됩니다.
브라우저에서 파일(스크립트?) 에 액세스할 때 발생하는 권한 오류는 사용자가 apache
./etc/httpd/*/httpd.conf
User domain
Group www-data