www-data 그룹에 모든 권한을 부여하는 것이 좋은 생각입니까?

www-data 그룹에 모든 권한을 부여하는 것이 좋은 생각입니까?

Apache/me에 대한 읽기, 쓰기 및 실행 권한 문제가 자주 발생합니다. "konrad" 그룹에는 사용자 "konrad"(나)가 있고 Apache에서 사용하는 "www-data" 그룹에는 사용자 "www-data"가 있습니다. 내가("konrad") 디렉토리를 생성할 때 Apache는 폴더에 쓸 수 있는 권한이 없으므로 문제가 발생합니다.

이제 다음과 같은 "아이디어"가 생겼습니다. 나 자신(사용자 "konrad")을 "www-data" 그룹(Apache의 사용자도 이 그룹에 속함)에 추가한 다음 모든 www 프로젝트를 사용자 "에 속하도록 chown합니다. konrad" 그러나 그룹: "www-data". 그룹이 파일과 디렉터리에 대한 모든 권한을 갖도록 프로젝트를 chmod하겠습니다(770이어야 한다고 생각합니다).

그런 다음 기본 그룹을 "konrad"에서 "www-data"로 변경하여 새 디렉터리/파일을 생성할 때마다 Apache도 해당 그룹에 대한 전체 액세스 권한을 갖게 됩니다.

문제는 이것이 좋은 생각인가 하는 것입니다. 나는 권한이나 심지어 Unix 자체에 대해서도 좋은 경험이 없습니다. 아마도 제가 뭔가를 놓치고 있는 것 같습니다. 그러나 그것은 나에게 합리적인 것 같습니다.

답변1

www-dataApache는 데비안 배포판에서 보안이라는 이유로 권한이 없는 사용자로 실행됩니다 .

권한을 포기하는 데몬을 처리할 때 가능하면 데몬을 실행하는 권한이 없는 사용자의 소유권을 갖는 구성 파일이나 데이터 파일을 생성하지 않는 것이 좋은 보안 관행으로 간주됩니다. 따라서 Apache 사용자가 손상되면 공격자가 사이트를 엉망으로 만들거나 손상시키기가 더 어려워집니다.

가능하면 다른 사용자로 사이트를 만들고 www-data 그룹에는 읽기 권한만 부여하고 실제로 필요한 디렉토리의 www-data에 대한 쓰기 권한만 부여하는 것이 좋습니다. 그러나 mod-ruid2를 사용하면 이를 피할 수도 있습니다.

mod-ruid2는 실제로 모든 사이트/가상 호스트가 소유자와 함께 실행되도록 허용하며 페이지의 보안 모델을 처리하는 것이 훨씬 쉽습니다. 누구나 쓰기 가능한 디렉터리를 만들 필요가 없습니다. 또한 하나의 가상 호스트가 손상되면 공격자가 다른 가상 호스트에 악성 코드를 심을 수 없도록 보장합니다.

mod-ruid2는 호스팅 모델을 사용하는 모든 사람에게 권장됩니다. 여기서는 이를 사용하여 수백 개의 사이트를 상당한 성공으로 운영합니다.

불행하게도 mod-ruid2에 대한 문서는 약간 드물기 때문에 이를 설명하는 더 자세한 기사를 작성해야 했습니다.유닉스와 리눅스에서.

답변2

아파치를 잘못 설정하신 것 같습니다. 나는 실제로 내 프로젝트와 파일에 konrad권한을 부여하여 일부 "취약성"이 있는 경우 내 코드가 안전하도록 할 것입니다.컴퓨터 그래픽 이미지 처리"스크립트. 웹 서버는 파일을 잘 읽을 수 있어야 합니다(모든 사람이 읽을 수 있는 경우). 자신이 소유한 디렉토리를 읽도록 Apache를 구성하거나 Apache에서 서비스 디렉토리의 소유자를 생성/변경하려면 수퍼유저가 필요합니다.

결국에는 웹 서버가 쓸 수 있는 / 에 한두 개의 디렉토리가 필요 www-data하지만 이는 또 다른 문제입니다.

답변3

웹 서버에는 항상 별도의 사용자를 사용해야 한다는 것을 배웠습니다. 이것이 제가 선생님들로부터 배운 것입니다. 보안상의 이유로 항상 다른 용도로 다른 사용자를 사용해야 합니다. 그런데, ich chown www-data:www-data in second :P

그런데 어떤 파일을 "konrad"로 생성했으며 왜 www-data에 액세스할 수 있습니까? 나는 2개의 웹 서버를 실행하고 www-data에 대한 일부 파일을 생성할 때 su - www-data해당 파일을 생성합니다.

따라서 이는 매우 이례적인 상황입니다. :P

관련 정보