Ubuntu 16.04.2 LTS를 LAMP 스택으로 사용합니다.
코드베이스 전체에 걸쳐 공장 8진수 권한이 사전 정의된 웹 프로젝트(Magento)를 설정했습니다. 다른 개발자에게 액세스 권한을 제공해야 합니다. 프로젝트 위치는 /var/www/webproject이며 Apache 소유자/그룹 www-data가 소유합니다.
그래서 www-data 그룹에 속한 개발자들을 위해 사용자(devuser)를 생성하고 그들에게 SSH 액세스 권한을 부여했습니다. 현재 사용자는 8진수 권한이 허용하지 않기 때문에 sudo를 사용하지 않고 /var/www/webproject에 포함된 파일을 생성하거나 편집할 수 없습니다.
요약:
/var/www/webproject permissions = 750
Files & directories within /var/www/webproject vary but...
user:group assignment for everything = www-data:www-data
질문:내 사용자를 위해사용자 개발/var/www/webproject에 포함된 파일과 디렉터리를 올바르게 수정하려면 그 안에 포함된 모든 파일과 디렉터리에 올바른 그룹 권한을 반복적으로 적용해야 합니까? 아니면 웹 플랫폼(Magento)에 대한 공장 권한을 유지하면서 www-data 그룹의 모든 사용자가 파일 및 디렉터리를 수정할 수 있도록 허용하는 더 좋은 방법이 있습니까?
답변1
그룹이 쓰기 권한이 없는 파일을 무조건 편집하도록 허용할 수 있는 방법은 없습니다.
이름이 지정된 사용자와 그룹은 www-data
동일하지 않습니다(모든 사용자는 사용자 이름에 자신만 포함된 그룹이 있으므로 이름이 인 그룹이 있는 것입니다 www-data
. 해당 그룹에 다른 사람을 추가하면 사용자의 권한이 아닌 해당 그룹의 권한을 갖게 됩니다).
chmod g+w
그룹 www-data
에 쓰기 권한이 있어야 하는 파일 에 적용해야 합니다 . 일반적으로 웹 디렉토리(770)에 파일을 저장하는 것이 안전합니다.
답변2
폴더에 대해 동일한 유효 권한을 유지하려면 POSIX 액세스 제어 목록을 사용하여 수행할 수 있습니다.
sudo su -
chown -R :web_developers /var/www/webproject
chmod -R 2770 /var/www/webproject
setfacl -R -m u:www-data:rwx /var/www/webproject
setfacl -R -m d:u:www-data:rwx /var/www/webproject
setfacl -R -m g:www-data:r-x /var/www/webproject
setfacl -R -m d:g:www-data:r-x /var/www/webproject
setfacl -R -m o:0 /var/www/webproject
setfacl -R -m d:o:0 /var/www/webproject
에서 웹 개발자를 제거하세요 www-data
.그는 웹서버가 아니다. 사람들은 항상 자신이 수행하는 작업에 해당하는 그룹에 속해야 하며 해당 그룹에 적절한 권한을 부여해야 합니다. 그러므로 그는 당신 중 하나입니다 web_developers
.
최종 결과:
rwx
www-data는 원본 파일을 모방하여 기존 파일과 향후 생성되는 파일에 대해 항상 사용자 및 그룹 권한을 갖습니다.r-x
750
- 이 그룹의 모든 구성원은 현재의 모든 파일과 향후 생성되는 파일에 대한
web_developers
전체 액세스 권한을 갖습니다.rwx
- 다른 사람에게는 권한이 없습니다(
root
- 및 확장 그룹 제외sudo
).
다른 신발 한 켤레:
- 문서만들어진그룹의 사용자는
web_developers
해당 사용자의 소유가 됩니다(단,www-data
여전히 사용자rwx
및 그룹r-x
권한은 있음).