웹 서버 루트 디렉토리의 권한


3

여러 설정 에서이 문제가 발생했으며 처리 방법을 잘 모르겠습니다.

처음에는의 /var소유입니다 root:root. 분명히 나는 ​​웹 디렉토리를 루트가 소유하고 싶지 않기 때문에 그렇게 chown apache:apache /var/www합니다. 그러나 누군가 ssh루트로 들어갔을 svn update때 파일을 편집하거나 파일을 편집하는 경우 소유권을 다시 루트로 변경합니다.

이 문제를 해결할 방법이 있습니까? suPhp로 무언가를 사용한다고 들었지만 그것이 필요한지 확실하지 않습니다.

답변:


6

참고 : 업데이트에 대한 루트 권한을 삭제하고 apache사용자 와 스크립트를 실행하는 것이 가장 좋습니다 .

 su apache -c "./update-script"

그렇지 않으면을 사용하십시오 chmod g+s /var/www. 이 디렉토리 내에 작성된 새 파일 및 서브 디렉토리는 기본적으로 상위 디렉토리 와 동일한 소유자 / 그룹을 공유합니다 . (이것은 재귀 적으로 퍼집니다.)

coreutils 매뉴얼 에 따르면 이것은 이식성이없는 GNU 확장입니다. 이것은 그룹 ID에서만 작동하는 것 같지만이 일반적인 종류의 문제를 처리하기에 충분해야한다고 생각합니다. ( umask 002스크립트를 실행할 때 사용 하면 도움이 될 수도 있습니다.)


예! 나는 다른 것들 위에 놓았습니다.
스테판 히메네스

3
생성 된 파일을 만드는 것은 프로세스 그룹을 만드는 것이 아니라 디렉토리 그룹에 속하는 것이 BSD입니다. 최신 System V 시스템 및 Linux는 디렉토리가 setgid 인 경우에만이를 수행합니다.
Gilles

3

분명히 나는 ​​루트가 웹 디렉토리를 소유하고 싶지 않다.

왜? 보안 모델은 무엇입니까?

chown apache : 아파치 / var / www

WTF는 보안 모델입니다 !!! ????

누군가 루트로 ssh'd 할 때

아 아아아 아아아!

아파치 사용자를 사용하지 않으면 Stephane G의 대답이 의미가 있습니다 . 대부분의 보안 모델의 경우보다 합리적인 접근 방식은 사용자 그룹이 파일에 대한 쓰기 액세스 권한을 갖도록 설정하고 그룹 소유권 및 그룹 고정을 설정하고 디렉토리에서 비트를 실행 및 기록한 다음 웹 서버 uid 액세스를 'other'로 허용하는 것입니다. . 웹 서버 uid로 작성할 수있는 특정 디렉토리 / 파일이 있어야하는 경우, 이들을 사용자로 웹 서버 uid로 설정하십시오 (그러나 다른 그룹과 동일한 그룹을 유지하십시오).

그리고 루트 ssh 로그인을 허용해서는 안됩니다 (허용 그룹 / 허용 사용자 허용 목록은 특정 사용자 거부 / 허가 루트 로그인 = 아니오).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.