새로운 ec2 우분투 상자를 설정하고 apache와 php5를 설치했습니다. 기본적으로 권한이 ubuntu
있는 사용자 로 상자에 로그온합니다 sudo
.
나는 Apache가 다음과 같이 실행 root
되고 php5가 www-data
.
문제가 없는 한 모든 파일을 /var/www
chown'ed로 설정하고 폴더는 755로, 파일은 644로 설정하기를 원한다고 생각합니다 .www-data:www-data
이렇게 하면 문제가 없지만 문제는 rsync
랩톱에서 서버로 파일을 제출할 때 해당 파일의 소유권이 다음과 같이 변경되고 새 파일이 추가된다는 것입니다.ubuntu:admin
매뉴얼을 살펴보고 rsync
Google을 검색했는데 다음과 같은 구문을 보았습니다.
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-data
root
필요Apache가 쓸 수 있으려면 www-data가 소유해야 합니다.