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

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

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

나는 아파치가 rootphp5처럼 실행된다고 생각합니다 www-data.

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

이렇게 하면 문제가 잘 작동하지만 문제는 rsync랩톱에서 서버로 파일을 보낼 때 소유권이 변경되고 새 파일이 추가된다는 것입니다.ubuntu:admin

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

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

--owner그러나 및는 --group인수 없이 사용되는 것으로 보이며 대신 원격 파일이 로컬 파일 시스템과 동일한 소유자를 갖도록 강제하는 데 사용됩니다(rsync가 수퍼유저로 실행되는 경우).

따라서 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-data제외 ) 가 소유해야 합니다 root. 오직 그필요Apache에서 쓸 수 있는 콘텐츠는 www-data의 소유여야 합니다.

관련 정보