프로젝트 권한설정(폴더, 파일)을 고정으로 설정하기
서버에 생성된 그룹별 의미
- 사용자계정 : 기본 계정 전용 그룹 (자동 생성, 필수)
- adm : 시스템 로그 열람 권한 (보통 관리자 계정에 필요, 일반 작업에는 불필요)
- cdrom : CD/DVD 장치 접근 (요즘 서버에 CD-ROM 없으면 불필요)
- sudo : 관리자 권한 사용 (필수)
- dip : 다이얼업/PPP 네트워크 관련 (예전 모뎀용, 거의 불필요)
- www-data : 웹서버 계정 그룹 (Debian/Ubuntu Apache·Nginx 기본)
- plugdev : USB 같은 핫플러그 장치 접근 (서버에서 USB 안 쓰면 불필요)
- lpadmin : 프린터 관리자 (서버에서 프린터 안 쓰면 불필요)
- lxd : LXD/LXC 컨테이너 관리 (Proxmox나 LXD 직접 쓰지 않으면 불필요)
- sambashare : Samba 공유 디렉토리 접근 (윈도우 공유 안 쓰면 불필요)
- docker : Docker 관리 권한 (Docker 쓰면 필수)
- www : aaPanel 설치 시 웹서버 계정으로 쓰는 경우 있음 (OpenLiteSpeed/Nginx 실행 계정 확인 필요)
- webdev : 직접 만든 그룹 (user_group + www 묶어서 웹 개발 관리, 적극 활용 추천 ✅)
🔎 그룹 목록 확인
# 모든 그룹 목록 보기
cat /etc/group
👉 이 파일에는 그룹명:x:GID:사용자1,사용자2,...
이런 형태로 쭉 나와요.
🔎 특정 그룹에 어떤 사용자가 있는지 확인
# 예: webdev 그룹
getent group webdev
출력 예시:
webdev:x:1002:user_group,www
→ webdev 그룹에 user_group
, www
가 포함된 상태라는 뜻.
1) www-data를 webdev 그룹에 추가 + 확인
# 그룹 추가
sudo usermod -aG webdev www-data
# 반영을 위해 PHP-FPM 재시작
# www-data가 webdev에 들어갔는지 확인
id www-data
# → groups 목록에 webdev가 보여야 함
🔎 현재 사용자가 속한 모든 그룹 확인
groups user_group
✅ 고정 폴더 권한설정 표준
- 소유자: user_group
- 그룹:
webdev
- 디렉토리:
2775
(setgid 포함 → 새로 생기는 것도 자동으로webdev
) - 파일:
664
- 특수 파일:
wp-config.php
→640
- 특수 폴더:
wp-content/uploads
,wp-content/plugins
,wp-content/themes
→775
유지
1) projects 권한설정
cd /www/wwwroot/projects
# 소유자/그룹 변경
sudo chown -R user_group:webdev .
# 폴더권한 고정
sudo find . -type d -exec chmod 2775 {} \;
# 파일권한 고정
sudo find . -type f -exec chmod 664 {} \;
# wp-config.php 보안
sudo chmod 640 wp-config.php
# wp-content 쓰기 폴더
sudo chmod -R 775 wp-content/uploads wp-content/plugins wp-content/themes
2) 바로 읽기 테스트 (권한설정 OK 여부 즉시 확인)
# www-data 권한으로 wp-config.php 읽기 시도
sudo -u www-data head -n 3 /www/wwwroot/projects/wp-config.php
# 에러 없이 내용이 보이면 해결된 것
📌 관리 방법
- 새로운 워드프레스 프로젝트 설치 시에도 위 명령어 세트 그대로 실행 → 고정 권한설정 세팅 완료.
- 권한은 개발/운영 따로 구분하지 않고 그대로 유지.
- 운영 중 수동 수정 필요할 때도 그냥
user_group
계정으로 접속 →webdev
그룹 권한 덕분에 문제없이 수정 가능.
© 위드