/var/www/html은 왜 루트(기본적으로)만 쓸 수 있나요?

/var/www/html은 왜 루트(기본적으로)만 쓸 수 있나요?

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를 실행하는 사용자는 UserApache 구성의 지시문에 의해 결정됩니다(일반적 apache으로 또는nobodymod_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를 사용합니다.

관련 정보