nginx, php-fpm 및 mysql에 대한 사용자 권한을 구성하는 방법

WBOY
풀어 주다: 2023-05-24 20:01:26
앞으로
1474명이 탐색했습니다.

nginx, php-fpm 및 mysql에 대한 사용자 권한을 구성하는 방법

일반적으로 우리가 웹 애플리케이션을 실행하는 서버에는 CentOS, Ubuntu, Debian 등과 같은 Linux 배포판이 포함됩니다. 이때 서비스 아키텍처를 형성하는 데 필요한 Nginx, PHP, MySQL 및 기타 애플리케이션의 권한 제어는 매우 중요합니다. 각 서비스에는 코드 디렉토리에 대한 권한 요구 사항이 다르므로 특정 권한이 없으면 서비스를 수행할 수 없습니다. 읽기, 쓰기 또는 실행을 수행하면 권한 요구 사항이 낮아지고 침입 및 수정 위험이 발생합니다.

1. 웹 서버 Nginx 권한

PHP의 운영 프레임워크는 일반적으로 Nginx와 결합하여 LNMP를 구성하거나 Apache와 결합하여 LAMP 아키텍처를 구성합니다. 여기서는 Nginx를 예로 들어 Nginx 서비스를 실행하는 데 필요한 권한을 설명합니다.
우리는 Nginx 자체가 PHP 구문을 구문 분석할 수 없다는 것을 알고 있으므로 Nginx는 정적 파일(예: HTML 등)에 대해 직접 구문 분석하고 결과를 반환하지만, PHP 파일의 경우 Nginx는 처리를 위해 이를 PHP 인터프리터 php-fpm으로 전송합니다. 처리 후 클라이언트 브라우저에 응답을 반환합니다.

따라서 Nginx 및 PHP 서비스에 필요한 권한을 코드 디렉터리에 통합해야 합니다.

① 루트 사용자를 일률적으로 사용하는 경우 일반 게스트 계정은 애플리케이션에 액세스할 수 없습니다. nginx를 루트로 실행하도록 구성하면 공격을 받으면 루트 ID를 획득하여 수행하게 됩니다. 시스템의 모든 작업.

코드 디렉터리의 권한을 rwxrwxrwx로 일률적으로 설정하면 사용자가 브라우저를 통해 코드 디렉터리를 직접 수정할 수 있는 위험이 숨어 있습니다.

그래서 가장 좋은 방법은 이들을 새로운 사용자 그룹으로 분류하고 Nginx 및 PHP를 실행하는 데 필요한 권한을 사용자 그룹에 할당하여 웹 애플리케이션의 권한 디렉터리 관리를 달성하는 것입니다. 대부분의 경우 팀에서는 www 사용자 그룹을 사용하여 코드 디렉터리 권한을 관리하고 사용자 www를 균일하게 관리합니다.

Nginx 구성 파일 nginix.conf에 구분된 실행 권한이 www 사용자 아래에 구성되어 있는 것을 볼 수 있으므로 Nginx 하위 프로세스도 www 사용자에 의해 실행되며, 이는 www 사용자에 의해 실행될 수 있습니다. ps aux | grep nginx 보기: nginix.conf里面划分的运行权限就是配置到了www用户下,因此Nginx的子进程也是由www用户执行,可以通过ps aux | grep nginx来查看:

nginx, php-fpm 및 mysql에 대한 사용자 권한을 구성하는 방법

可以看到nginx的主进程是root,其余子进程均是www的用户

nginx.conf的配置:

nginx, php-fpm 및 mysql에 대한 사용자 권한을 구성하는 방법

二、php的权限配置

同样的,php的运行方式也是由主进程root运行,在子进程池(pool)里面配置由www用户执行,具体配置在php根目录下的etcphp-fpm.conf下,添加两行:

user = www
 group = www
로그인 후 복사

即可,同样用ps aux | grep php可以查看进程使用的用户身份:

nginx, php-fpm 및 mysql에 대한 사용자 권한을 구성하는 방법

三、MySQL服务的权限配置

通过ps aux | grep mysql

nginx, php-fpm 및 mysql에 대한 사용자 권한을 구성하는 방법nginx의 기본 프로세스는 루트이고 다른 하위 프로세스는 모두 www

nginx.conf 구성의 사용자임을 알 수 있습니다. nginx, php-fpm 및 mysql에 대한 사용자 권한을 구성하는 방법

2. PHP 권한 구성

마찬가지로 PHP는 기본 프로세스 루트에 의해 실행되며, www 사용자가 실행하도록 하위 프로세스 풀(풀)에 구성됩니다. 구체적인 구성은 etcphp에 있습니다. -fpm.conf를 PHP 루트 디렉토리에 추가하세요.

user www www;
로그인 후 복사

또한 ps aux | grep php를 사용하여 프로세스에서 사용하는 사용자 ID를 볼 수도 있습니다. 🎜 mysql 사용자로 MySQL 서비스가 실행되고 있는 것을 볼 수 있습니다. 이 서비스에서는 mysql 사용자 이름만 가져오면 됩니다. PHP 코드가 mysql에 연결될 때 비밀번호를 입력해야 합니다. 기본 데이터의 보안을 보장하기 위해 데이터 레이어를 비즈니스 로직 레이어와 격리해야 하기 때문에 www로 통합할 필요가 없습니다. mysql의 인증은 주로 새로운 사용자를 추가하고 mysql 서비스에서 권한을 나누는 것입니다. 이는 데이터 보안을 보장하기 위해 다양한 PHP 비즈니스가 다양한 권한 범위를 가진 ID와 연결하도록 제어하는 ​​데 사용됩니다. 🎜🎜🎜🎜🎜🎜🎜 IV. 요약 🎜🎜🎜nginx 구성: 🎜
user = www
group = www
로그인 후 복사
🎜php-fpm: 🎜🎜
drwxr-xr-x 就是755
로그인 후 복사
🎜디렉토리: 🎜🎜rrreee

위 내용은 nginx, php-fpm 및 mysql에 대한 사용자 권한을 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿