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