aws ec2 server에 프로젝트를 배포 중 위 스크린샷과 같은 문제가 생겼다.
db에 접근할 일이 생길 때 저런 에러가 뜨면서 접근이 안된다.
chmod 664를 통해 db.sqlite3의 권한만 바꿔주면 될 것 같았지만 아니었다.
우선 developers라는 그룹을 만들어서 ubuntu계정과 deploy계정, 그리고 www-data계정을 포함시켜 준다.
(+2020-12-15 추가: 그냥 만들어져 있는 ubuntu라는 그룹에다가 ubuntu계정과 deploy계정, 그리고 www-data계정을 포함시켜 주는 것이 더 좋은 것 같다. 왜냐하면 파일이나 폴더를 새로 만들거나 추가하면 디폴트가 ubuntu:ubuntu이기 때문에 매번 chown을 통해 group을 바꿔줘야하는 수고를 덜 수 있다.)
그 후엔 프로젝트 폴더나 그 상위의 srv폴더를 -R 옵션을 줘서 통째로 소유자 권한을 ubuntu:developers로 설정해주면 된다.
ex)
sudo chown -R ubuntu:developers /srv/
그리고 db.sqlite3의 초기 생성권한은 644로 되어있는데 이것을 664로 바꿔주면 된다.
즉, 그룹에 대해서도 쓰기 권한을 주는 것이다.
chmod 664 db.sqlite3
이렇게 하고 다시 서버를 구동하고 해보면 잘 실행된다.
관리자 권한이 필요할 경우 sudo를 붙이고 아래 명령어들을 실행
문제 해결에 관련된 명령어들
그룹 추가
groupadd new_group
그룹에 유저 추가
adduser user_name new_group
그룹 이름 변경
groupmod -n new_group_name group_name
-----------------------------------------------------------------
접근권한 변경
chmod -R 775 [file or folder name]
-R은 하위 디렉토리 및 파일들에도 적용하는 옵션
첫 번째 숫자: Owner 권한
두 번째 숫자: Group 권한
세 번째 숫자: Other 권한
소유자 및 그룹변경
chown -R [소유자명[:그룹명]] [file or folder name]
-----------------------------------------------------------------
호스트OS의 전체 그룹 리스트를 조회한다.
cut -d: -f1 /etc/group
호스트OS의 전체 사용자 리스트를 조회한다.
cut -d: -f1 /etc/passwd
그룹 내 사용자 리스트
getent group 그룹이름
'Ubuntu' 카테고리의 다른 글
AWS Ubuntu 서버로 파일이나 폴더 보내기 (0) | 2020.12.15 |
---|