www-data가 파일을 소유하게 하려면 /var/www의 파일을 어떻게 rsync해야 합니까?

www-data가 파일을 소유하게 하려면 /var/www의 파일을 어떻게 rsync해야 합니까?

새로운 ec2 우분투 상자를 설정하고 apache와 php5를 설치했습니다. 기본적으로 권한이 ubuntu있는 사용자 로 상자에 로그온합니다 sudo.

나는 Apache가 다음과 같이 실행 root되고 php5가 www-data.

문제가 없는 한 모든 파일을 /var/wwwchown'ed로 설정하고 폴더는 755로, 파일은 644로 설정하기를 원한다고 생각합니다 .www-data:www-data

이렇게 하면 문제가 없지만 문제는 rsync랩톱에서 서버로 파일을 제출할 때 해당 파일의 소유권이 다음과 같이 변경되고 새 파일이 추가된다는 것입니다.ubuntu:admin

매뉴얼을 살펴보고 rsyncGoogle을 검색했는데 다음과 같은 구문을 보았습니다.

rsync -avzcO (source) (destination) --owner=www-data --group=www-data

그러나 인수를 취하지 않고 대신 rsync가 슈퍼 사용자로 수행되는 경우 원격 파일이 로컬 파일 시스템과 동일한 소유자를 갖도록 강제하는 데 사용되는 것으로 --owner보입니다 .--group

따라서 rsync 중에 원격 사용자와 파일 그룹을 설정하는 rsync 솔루션을 찾지 못했습니다.

내가 도대체 ​​뭘 잘못하고있는 겁니까?

생각:

  • 아마도 /var/www에 있는 내 파일은 의 소유여야 할까요 ubuntu:admin?
  • 어쩌면 rsync 구문이 잘못되었을 수도 있습니다.
  • 사용자 로서 rsync를 수행할 수 있을 것 같지만 www-data좋은 생각은 아닌 것 같습니다.
  • 공유 호스트에서처럼 suPHP를 사용할 수 있지만 꽤 문제가 있는 것 같습니다.

답변1

www-data가 소유하는 것을 원하지 않습니다. Apache는 처음에 루트로 실행된 다음 www-data에 대한 권한을 삭제합니다. Apache 프로세스를 소유한 사용자가 웹 콘텐츠에 쓸 수 있는 것을 원하지 않습니다. 이로 인해 보안 취약점이 발생합니다.

Apache가 침해되는 경우 이상적으로 www-data 사용자는 시스템에 액세스할 수 없습니다. 이것이 가장 안전한 구성입니다. 웹 콘텐츠가 www-data의 소유이고 Apache가 유출되면 공격자가 웹 콘텐츠를 덮어쓸 수 있습니다.

귀하의 웹 콘텐츠는 일반 사용자가 소유해야 합니다( 및 제외 nobody) . 그런 것들만www-dataroot필요Apache가 쓸 수 있으려면 www-data가 소유해야 합니다.

관련 정보