2014-11-11 2 views
6

Apache mod_fastcgi 설정에서 사용자 별 php5-fpm 풀을 생성 할 때 다음 중 가장 안전한 방법이며 PHP 풀에 웹 서버 사용 권한을 부여하는 효율적인 방법은 무엇입니까?사용자 당 php5-fpm 작성 보안 방법

옵션 1 :

설정 그룹 www-data에 :

listen.owner = username 
listen.group = www-data 
listen.mode = 0660 

user = username 
group = www-data 

이름에 대한 소유권 세트를했을 PHP에 의해 생성 된 파일 작동하지만 : www가 데이터를 파일 SCP를 통해 업로드 동안 것 있다 사용자 이름 : 사용자 이름.

는 부가적인 그룹 usernamewww-data 추가 :


옵션 2
listen.owner = username 
listen.group = username 
listen.mode = 0660 

user = username 
group = username 

-

usermod -aG username www-data 

이러한 옵션 중 안전? 더 나은 방법을 공유 할 수도 있습니다.

나는 다음과 같은 가이드 확인 :

을하지만 버그 #67060이 발견되어 고정되기 전에 그들은 모두 작성되었습니다.

답변

0

LEMP (Nginx + PHP-FPM)에서 다음 설정을 사용하고 있습니다. Apache의 경우에도 적용 가능해야합니다.

# usermod -a -G user5 nginx 

:

PHP-FPM은 사용자 nginxuser1, user2 .. 그룹의 구성원 인

nginx:nginx

Nginx에 실행 ... nobody:user1, nobody:user2으로 여러 풀을 실행 파일 사용 권한 :

root:root drwx--x--x /home 
user1:user1 drwx--x--- /home/user1      (1) 
user1:user1 rwxr-x--- /home/user1/site.com/config.php (2) 
user1:user1 drwxrwx--- /home/user1/site.com/uploads  (3) 
nobody:user1 rw-rw---- /home/user1/site.com/uploads/avatar.gif (4) 

(1) 사용자의 홈 디렉토리는 other에 대한 x 권한이 없기 때문에 nobody:user2 반대의 경우도 마찬가지 /home/user1에 대한 액세스 권한을 가지고하지 않으므로 PHP-FPM 수영장 실행.

(2) PHP 스크립트에는 group에 대해 w이 없으므로 htdocs에 파일을 만들 수 없습니다.

(3) 디렉토리에서 user1 그룹의 쓰기 액세스를 수동으로 설정해야 PHP 스크립트에서 파일을 넣을 수 있습니다.uploads에 대한 PHP 처리기를 해제하는 것을 잊지 마세요, nginx를이는

server { 
    .... 
    location ^~ /uploads/ { } 

에 의해 이루어집니다하지만 아파치에 대한 당신은 확인해야합니다.

(4) 우리가 나중에 FTP 또는 SSH (user1:user1로 로그인)를 통해이 파일을 편집 할 수 있도록 user1을 원하는 경우 파일도 group에 대한 w을해야 업로드했습니다. PHP 코드는 user1owner이므로 ftp를 통해 편집 할 수도 있습니다. 사용자 nginxuser1, user2 ... 그룹의 멤버이기 때문에

Nginx에 모든 사용자가 read 액세스 및 모든 사용자의 업로드에 write 액세스 할 수 있습니다. 나중에 모든 그룹에 추가하는 것을 잊지 마십시오. useradd 스크립트를 수정하여 자동으로 수행 할 수도 있습니다.

관련 문제