PHP 사용자 www-data의 기본 파일 권한


8

우분투 컴퓨터에 PHP가 설치되어 있습니다. 웹 루트는/var/www

이 폴더에 대한 권한을 다음과 같이 설정했습니다.

sudo chown -R ftpuser : www-data / var / www

ftpuser는 내가 설정 한 사용자이므로 네트워크의 다른 시스템에서 / var / www로 ftp를 사용할 수 있습니다. www-data는 PHP가 사용하는 사용자입니다. whoamiPHP에서 사용하여 두 번 확인했습니다 .

새 파일을 컴퓨터에 ftp로 업로드 할 때마다 그룹에 파일에 대한 권한이 없습니다. 따라서 브라우저를 통해 브라우저에 액세스하려고하면 machine-name/new-file.php권한이 거부되었음을 알리고 chmod새 파일을 가져와야합니다.

www-data 사용자 / 그룹이 새 파일에 대한 액세스 권한을 갖도록 기본 설정하는 방법이 있는지 궁금해서 chmod를 새 파일마다 유지할 필요가 없습니까?

답변:


6

ACL을 사용할 수 있습니다. Ubuntu 10.10에 대한 ACL을 설정하려면 먼저 / etc / fstab에서 acl 옵션을 사용하여 파일 시스템을 마운트하십시오.

sudo vim /etc/fstab

UUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 기본값, acl 0 1

sudo mount -o remount,acl /

그런 다음이 목적으로 사용자가 속한 그룹을 만드십시오.

sudo groupadd developers
sudo usermod -a -G developers $username

개발자 그룹의 구성원이 되려면 사용자가 로그 아웃했다가 다시 로그인해야합니다.

물론 / var / www 디렉토리에 원하는 컨텐츠가있는 경우 시작하지 않도록 설정하는 방법 만 설명하면됩니다.

sudo rm -rf /var/www
sudo mkdir -p /var/www/public
sudo chown -R root.developers /var/www/public
sudo chmod 0775 /var/www/public
sudo chmod g+s /var/www/public
sudo setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/public

그런 다음 구성 파일에서 "/ var / www"에 대한 참조를 "/ var / www / public"으로 바꾸고 다시로드하십시오.

sudo vim /etc/apache2/sites-enabled/000-default
sudo /etc/init.d/apache2 reload

파일을 만든 사용자를 제외한 모든 사용자의 삭제 및 이름 바꾸기를 제한하려는 경우 :

sudo chmod +t /var/www/public

이런 식으로 Apache 문서 루트 외부에 존재하는 프레임 워크 용 디렉토리를 만들거나 서버 쓰기 가능 디렉토리를 만들려면 여전히 쉽습니다.

Apache 쓰기 가능 로그 디렉토리 :

sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs

아파치가 읽을 수있는 라이브러리 디렉토리 :

sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/lib
sudo chmod 0750 /var/www/lib

이것은 나를 위해 완벽하게 작동했지만 chmod g+sand setfacl명령 및 수행 한 작업 (및 해당 매개 변수)을 설명 할 수 있다면 관심이 있습니다 .
Greg

4

나는 당신이 이것을 이미 분류했다고 확신하므로 비슷한 요청을 가진 사람을위한 것입니다.

webroot 폴더에서 "소유권 변경"명령을 실행하십시오 :

sudo chown manny -R www

이렇게하면 소유자가 "manny"를 사용자 이름으로 바꾸어 www 폴더 내에서 쓰거나 읽을 수 있습니다


1

웹 서버가 파일을 읽을 수없는 경우 권한이 new-file.php600과 같습니다 (소유자에 대한 읽기 및 쓰기). FTP 애플리케이션에서 umask 설정을 검색하고 007과 같은지 확인하십시오.

웹 응용 프로그램에서 파일을 chmod (또는 파일 소유자 만 수행 할 수있는 다른 작업)가 필요한 경우 다른 방법이 필요합니다. Apache를 사용하는 경우 itk MPM 사용을 고려해야합니다 . 해당 모듈을 사용하면 Apache가 "ftpuser"와 동일한 사용자를 사용하여 파일을 실행 / 열게 할 수 있습니다. 이 주제에 대한 자세한 정보가 필요하면 의견을 추가하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.