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

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

(Debian에서) LAMP를 설정한 후 /var/www/html의 권한을 살펴본 후 루트( )로만 쓸 수 있다는 사실에 놀랐습니다 drwxr-xr-x 1 root root.

아마도 PHP 스크립트는 /var/www/html에 파일을 생성할 수 있지만 확실히 PHP 스크립트(또는 해당 인터프리터)는 루트 이름으로 실행되지 않습니까? 내가 오해하고 있는 부분을 이해하도록 도와줄 수 있는 사람이 있나요?

편집하다:

나는 PHP를 설치했다apt-get install php5-common libapache2-mod-php5 php5-mysql php5-cli

답변1

PHP 스크립트는 다음 중 하나로 실행됩니다.

  • UserApache 구성의 지시문 에 따라 결정된 대로 Apache를 실행하는 사용자 (일반적 apache으로 또는 nobody)mod_php
  • PHP-FPM을 사용하는 경우 PHP-FPM을 실행하는 사용자php-fpm

따라서 사용자에 따라 PHP 스크립트가 실행됩니다. 따라서 소유자와 그룹 /var/www/html(또는 귀하가 있는 위치 ) 을 적절하게 설정하는 것은 귀하에게 달려 있습니다 DocumentRoot.

또한 PHP 애플리케이션이 파일을 쓰거나 덮어쓰는 것을 원하지 않을 수도 있습니다. DocumentRoot이렇게 하면 손상되었거나 안전하지 않은 PHP 웹 애플리케이션 방문자가 원격 코드 실행 권한을 얻을 수 있기 때문입니다. 따라서 귀하의 PHP 애플리케이션이 Apache가 웹을 통해 제공하거나 실행할 수 있는 파일에 쓸 수 있을 만큼 충분히 신뢰할 수 있는지 여부를 결정하는 것은 귀하의 책임입니다.

위에서 언급한 것과 비슷한 이유로 PHP는 루트로 실행되는 경우가 거의 없습니다(그리고 절대로 실행해서는 안 됩니다!).

답변2

Centos/RHEL은 이미 /var/www/html에 root:root를 사용했습니다. 보안 문제에 관한 것입니다. Apache 또는 누구도 안전하지 않습니다. root:root를 설정하면 /var/www/html을 해킹하기가 쉽지 않습니다. Debian은 /var/www/html에서 root:root를 사용하는 데 늦었습니다.

관련 정보