서버 운영
서버의 권한 팝업 문제 진단하기
운영 중 권한 관련 팝업이나 로그 에러가 나면 서버의 실제 상태를 확인하는 순서.
서버 운영할 때 권한 에러는 단순히 파일 권한만 볼 것이 아니다. 실제로는 프로세스, 시간대, 네트워크 설정 등 여러 항목이 복합적으로 작용한다.
먼저 현재 서버 상태를 스냅샷으로 남기기
권한 문제가 발생한 시점의 서버 상태를 기록한다. 메모리, 디스크, 포트, 프로세스 상태를 한 번에 본다. 이 정보가 나중에 원인을 추적하는 가장 빠른 길이다.
# 열려있는 포트와 프로세스 확인
sudo ss -lntp
# 디스크 상태
df -h
# 최근 시스템 로그
sudo journalctl -n 80
권한이 실제로 문제인가
파일 권한을 확인하기 전에 프로세스가 실제로 권한이 없는 건지, 아니면 파일이 없는 건지, 아니면 네트워크가 막힌 건지 확인한다. ls -l로 권한을 봤을 때 rwx가 없다면 문제지만, 그 전에 파일 존재 여부를 먼저 확인해야 한다.
# 특정 디렉토리의 권한 확인
ls -la /opt/app/
# 프로세스가 실제로 실행 중인지
ps aux | grep -E 'app|service'
시간대와 로그 타이밍
권한 팝업이 언제 나타나는지 기록한다. 특정 시간에만 문제가 나면 주기적인 작업(cron, 자동 백업, 로테이션)이 간섭하는 건 아닌지 확인한다. 로그 타임스탐프도 서버 시간과 일치하는지 봐야 한다.
설정 변경 이력 확인
권한 문제가 최근에 시작된 거라면 최근 변경사항을 체크한다. sudo 설정, umask, SELinux 정책 등이 바뀌었는지 확인한다. 설정 파일을 백업해뒀다면 diff로 비교하면 명확하다.
# 설정 변경 이력 확인
grep -r "permission denied" /var/log/
재발을 방지하기 위해 기록해두기
권한 에러를 해결한 후에도 현재 상태를 기록해둔다. 문제가 발생한 시간, 시스템 상태, 적용한 수정 내용을 한 줄로 정리해두면 다음에 비슷한 증상이 나올 때 빠르게 진단할 수 있다.