숏컷 코드
whoami
id
groups
sudo -l
sudo systemctl status nginx
sudoedit /etc/nginx/nginx.conf| 목적 | 명령 |
|---|---|
| 현재 사용자 확인 | whoami |
| UID, GID, 그룹 확인 | id |
| 그룹 목록 확인 | groups |
| 허용된 sudo 권한 확인 | sudo -l |
| 관리자 권한으로 명령 실행 | sudo <command> |
| 안전하게 root 소유 파일 편집 | sudoedit <file> |
권한 모델
Linux 권한은 사용자와 그룹을 기준으로 결정됩니다. 파일은 owner와 group을 갖고, 권한은 owner/group/other에 나뉘어 적용됩니다. 현재 셸이 어떤 사용자와 그룹으로 실행 중인지 모르면 권한 오류를 정확히 판단하기 어렵습니다.
whoami
id
ls -l /var/wwwsudo는 현재 사용자에게 허용된 범위 안에서 다른 사용자, 보통 root 권한으로 명령을 실행합니다. 모든 권한 문제가 sudo로 해결되는 것은 아닙니다. 서비스가 어떤 사용자로 실행되는지, 파일 소유권이 어떤지, 그룹 권한으로 해결할 수 있는지 먼저 확인하는 편이 안전합니다.
sudo 권한은 정책이다
sudo -l은 현재 사용자가 어떤 명령을 sudo로 실행할 수 있는지 보여 줍니다. 운영 서버에서는 모든 명령을 root로 실행할 수 있게 열어 두기보다, 필요한 명령과 그룹을 제한하는 것이 일반적입니다.
sudo -l
sudo systemctl restart myapproot 소유 설정 파일을 편집할 때는 sudo vim file보다 sudoedit file을 검토할 수 있습니다. 편집기는 일반 사용자 권한으로 실행하고 저장 단계에서 sudo가 개입하므로, 편집기 플러그인까지 root 권한으로 실행되는 위험을 줄일 수 있습니다.
체크포인트
| 상황 | 먼저 확인 |
|---|---|
| 권한 오류 발생 | whoami, id, ls -l |
| 그룹 권한 의심 | groups |
| sudo 가능 여부 확인 | sudo -l |
| 서비스가 파일을 못 씀 | 서비스 실행 사용자와 파일 소유권 |
| root 파일 편집 | sudoedit 검토 |
| 임시로 root shell 필요 | 범위와 종료 시점 명확화 |
주의할 점
습관적으로 sudo를 붙이면 권한 설계 문제를 숨길 수 있습니다.
운영 서비스 파일은 root로 직접 수정하기보다 소유자, 그룹, 배포 절차를 명확히 두는 편이 안전합니다.
id
systemctl status myapp
ps -o user,pid,cmd -C myapp
ls -ld /var/lib/myapp참고 링크
2 sources