우리 회사에는 CentOS 7을 사용하는 웹 서버가 있으며 고객은 FTP (vsftpd)를 통해 웹 사이트를 관리합니다. SELinux가 적용 모드입니다.
문제는 VSFTPD를 통해 생성 / 업로드 된 데이터가 적절한 SELinux 컨텍스트를 상속하지 않는다는 것입니다. 설명하겠습니다.
예를 들어, WordPress 사이트의 경우 서버에 기본적으로 이미 다음을 사용하여 볼 수있는 몇 가지 규칙이 있습니다 semanage fcontext -l |grep '/var/www'
.
/var/www/html(/.*)?/uploads(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
/var/www/html(/.*)?/wp-content(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
그래서, 난에 디렉토리에 다른 서버에서 워드 프레스 사이트하자 말을 복사 할 때 /var/www/html/
SSH, 폴더로 wp-content/
와 wp-content/uploads/
적절한있는 httpd_sys_rw_content_t
보안 컨텍스트를. 그러나 FTP를 통해 해당 폴더를 만들 때 컨텍스트는 httpd_sys_content_t
( rw 없음 )입니다. 이는 고객이 서버에 업로드 한 사이트가 Apache 사용자 / 그룹에 쓰기 권한을 부여하더라도 해당 디렉토리에 쓸 수 없으므로 WordPress 관리자가 작동하지 않음을 의미합니다. 따라서 사이트를 업로드 할 때이 문제를 해결하려면 지원을 요청해야합니다. 이는 모든 관련자에게 시간 낭비입니다.
고객이 자신의 사이트를에 업로드했다고 가정 해 보겠습니다 httpdocs
.SSH를 통해 mv httpdocs/ httpdocs.2/ && cp -pr httpdocs.2/ httpdocs/ && rm httpdocs.2/ -fr
문제가 해결되면 데이터에 아무런 문제가 없습니다.
restorecon -Rv httpdocs/
문제를 해결하기 위해 할 수도 있습니다 .
따라서 질문은 다음과 같습니다. VSFTPD를 통해 생성 / 업로드 된 디렉토리가 SSH를 통해 디렉토리를 생성 / 업로드 할 때 상속되는 것처럼 적절한 SELinux 컨텍스트를 상속하도록하려면 어떻게해야합니까?