drwxr-xr-x 1 root root
(Debian에서) LAMP를 설정하고 /var/www/html의 권한을 살펴본 후 루트( ) 만 쓸 수 있다는 사실에 놀랐습니다 .
아마도 PHP 스크립트는 /var/www/html에 파일을 생성할 수 있지만 확실히 PHP 스크립트(또는 해당 인터프리터)는 루트로 실행되지 않습니까? 누구든지 내 오해를 이해하도록 도와줄 수 있나요?
편집하다:
PHP를 설치했어요apt-get install php5-common libapache2-mod-php5 php5-mysql php5-cli
답변1
PHP 스크립트는 다음과 같이 실행됩니다.
- Apache를 사용하는 경우 Apache를 실행하는 사용자는
User
Apache 구성의 지시문에 의해 결정됩니다(일반적apache
으로 또는nobody
mod_php
- PHP-FPM을 실행하는 사용자(이를 사용하는 경우)
php-fpm
따라서 PHP 스크립트가 실행되는 사용자는 다양합니다. 따라서 소유자와 그룹 /var/www/html
(또는 DocumentRoot
위치) 을 적절하게 설정할 수 있습니다.
또한 PHP 애플리케이션이 파일에 쓰거나 덮어쓰는 것을 전혀 원하지 않을 수도 있습니다. DocumentRoot
이렇게 하면 손상되었거나 안전하지 않은 PHP 웹 애플리케이션 방문자가 원격 코드 실행 권한을 얻을 수 있기 때문입니다. 따라서 Apache가 네트워크를 통해 제공하고 실행할 수 있는 파일을 작성할 수 있을 만큼 PHP 애플리케이션을 신뢰할 수 있는지 여부를 결정하는 것은 귀하의 책임입니다.
위에서 언급한 것과 비슷한 이유로 PHP는 루트로 실행되는 경우가 거의 없습니다(그리고 그렇게 해서도 안 됩니다!).
답변2
Centos/RHEL은 이미 /var/www/html에 root:root를 사용하고 있습니다. 안전 문제에 관한 내용입니다. Apache 또는 그 누구도 안전하지 않습니다. root:root를 설정할 때 /var/www/html을 크랙하는 것은 쉽지 않습니다. 데비안은 매우 늦게 /var/www/html에서 root:root를 사용합니다.