www-data 그룹에 쓰기 권한 부여


27

나는 웹 사이트를 만들고 있으며 기능의 일부는 PHP로 사용자 생성 데이터를 쓰는 것입니다. 우분투 13.04에서 nginx를 사용하고 있습니다. 내가 테스트하는 순간 locahost에서 nginx를 통해 모든 것이 제공됩니다.

내 PHP 스크립트가 텍스트 파일을 쓰지 못하지만 (수동으로 할 수는 있지만) /var/www/example.com/public_html 디렉토리에 쓰는 데 권한 문제라고 생각합니다.

현재이 디렉토리를 소유하고 있지만 / var / www 디렉토리의 소유권과 그 안에있는 모든 것을 www-data 사용자 (또는 그룹이어야합니까?)에게 이전하고 자신을 추가하는 것이 더 합리적입니다. www-data 그룹. 다음이 올바른 방법입니까?

useradd -G www-data iain
chown -R www-data:www-data /var/www/example.com
chmod 775 /var/www

그렇다면 www-data 그룹의 모든 사람이 이제 / var / www에서 읽고 쓰고 실행할 수 있습니까?

답변:


52

먼저 useradd새로운 사용자를 만듭니다. 이미 (iain) 존재하므로 usermod대신 전화를 걸고 싶습니다 . 따라서 다음과 같습니다.

sudo usermod -aG www-data iain
addgroup www-data

( -a데비안 기반 서버 (우분투 포함)에서 해당 그룹에 사용자를 추가하고 다른 그룹의 회원 자격을 유지합니다. 잊어 버려서 www-data 그룹에만 속할 수 있습니다. SUSE 유형 서버에서는 옵션을 -A사용하는 대신 주의해서 -aG읽으십시오 man usermod.)

둘째, 아파치가 전체 rw 액세스 권한을 갖기를 원하지 않습니다 /var/www. 이는 잠재적으로 중대한 보안 위반입니다. 일반적으로 필요한 것만 허용하고 그 이상은 허용하지 마십시오 ( 최소 권한의 원칙 ). 이 경우 아파치 ( www-data)와 당신 ( www-data그룹)이에 쓰기 (및 읽기) /var/www/example.com/public_html해야하므로

sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chmod -R 770 /var/www/example.com/public_html

편집 : 원래 질문에 대답하려면 예, 모든 구성원이 www-data읽고 실행할 수 있습니다 /var/www(권한의 마지막 비트는 5 = 읽기 + 실행이기 때문에). 그러나 -R스위치를 사용하지 않았기 때문에 스위치 /var/www에 포함 된 파일 및 하위 디렉토리에는 적용 되지 않고에 적용됩니다 . 이제 글을 쓸 수 있는지 여부는 또 다른 문제이며 /var/www설정하지 않은 의 그룹에 따라 다릅니다 . 나는 그것이 일반적으로 root:root, 그래서, 아마 (아마도) 쓸 수 없다고 생각합니다 .

2014-06-22 편집 : -aG옵션이 데비안 기반 서버에서 유효 하다는 메모를 추가했습니다 . 배포판에 따라 다르므로 man실행하기 전에주의 깊게 읽으십시오 .


알 겠어. / var / www 그룹은 실제로 root : root입니다. 링크 주셔서 감사합니다. 편의를 위해가는 것이 아니라 필요한 것을 부여하는 습관을 갖는 것이 더 합리적입니다. 지도 해 주셔서 감사합니다.
더프

2
좋아, 방금 /var/www/example.com/public_html에 쓰려고 시도했지만 cp -r php /var/www/example.com/public_html권한이 거부되었습니다. 이 디렉토리에 대한 rwxrwx --- 권한을 가진 www-data 그룹에 있습니다. 왜 이런거야?
더프

여기에는 많은 것들이있을 수 있습니다. 예를 들어, PHP에서 일부 내용을 읽을 수있는 권한이 없거나 로그 아웃하지 않고 usermod 이후에 로그인하지 않았습니다 (이 지점에서 addgroup으로 답변을 업데이트하고 sudo를 사용할 위치를 정확하게 지정했습니다).
Calimo

에 관한 모든 답변에서 www-data:www-data권한이없는 문제를 해결했습니다. 고맙습니다.
Eugene
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.