Linux 로그 경로 정리 · 05/50 · Part 1. Linux 로그 기본 구조
선행 학습 → 04. Linux 로그 파일과 디렉터리 확인 방법 · 파일 · 권한 · 사용자 관리 시리즈
이번 글 → 로그 파일의 권한과 소유권
이어서 → 06. Linux 로그의 시간 정보 이해
로그는 공격자가 가장 먼저 지우고 싶어 하는 파일입니다. 동시에 비밀번호 오입력 문자열, 내부 IP, 사용자명 같은 민감 정보도 담고 있습니다. 그래서 로그 파일의 권한은 두 가지를 동시에 지켜야 합니다.
핵심 요약
- Rocky: 대부분
root:root 0600— root만 읽기.- Ubuntu:
syslog:adm 0640— adm 그룹이면 읽기 가능.- 저널:
systemd-journal그룹(및 adm/wheel 설정에 따라)이 전체 저널 열람 가능.
| 주체 | 배포판 | 의미 |
|---|---|---|
| root | 공통 | 모든 로그 읽기/쓰기/삭제 가능 → root 탈취 = 로그 신뢰도 하락 |
| syslog (사용자) | Ubuntu | rsyslog가 권한을 낮춰($PrivDropToUser syslog) 파일을 기록 |
| adm (그룹) | Ubuntu 중심 | 로그 열람용 그룹. 초기 설치 사용자가 기본 포함되는 경우가 많음 |
| wheel (그룹) | Rocky | sudo 권한 그룹. 로그 자체 권한과는 별개지만 sudo로 우회 가능 |
| systemd-journal (그룹) | 공통 | 전체 저널 읽기 권한. 미포함 사용자는 자신의 로그만 보임 |
| 서비스 계정 | 공통 | apache, nginx, mysql 등이 자신의 로그 디렉터리에 기록 |

기록 주체 파일 열람 가능
───────── ──── ─────────
rsyslogd(root) ──▶ /var/log/secure (0600 root:root) ──▶ root
rsyslogd(syslog) ──▶ /var/log/auth.log (0640 syslog:adm) ──▶ root, adm
journald ──▶ /var/log/journal/* (systemd-journal) ──▶ root, systemd-journal(, adm, wheel*)
auditd(root) ──▶ /var/log/audit/audit.log (0600, log_group=root) ──▶ root
nginx(worker) ──▶ /var/log/nginx/*.log (서비스 설정) ──▶ root, adm(Ubuntu)
* 배포판 ACL 설정에 따라
| 경로 | Rocky 9 (기본 기대값) | Ubuntu 24.04 (기본 기대값) |
|---|---|---|
| 인증 로그 | /var/log/secure 0600 root:root | /var/log/auth.log 0640 syslog:adm |
| 시스템 로그 | /var/log/messages 0600 root:root | /var/log/syslog 0640 syslog:adm |
| 감사 로그 | /var/log/audit/audit.log 0600 root:root | (auditd 설치 시) 동일 |
| 감사 설정 | /etc/audit/auditd.conf log_group = root | 동일 |
기대값은 기본 설치 기준입니다. 반드시 실제 서버에서
stat으로 확인합니다.
# 파일 권한/소유자
stat -c '%a %U:%G %n' /var/log/secure /var/log/messages /var/log/audit/audit.log 2>/dev/null # Rocky
stat -c '%a %U:%G %n' /var/log/auth.log /var/log/syslog 2>/dev/null # Ubuntu
# 로그를 읽을 수 있는 그룹 구성원
getent group adm systemd-journal wheel
# 저널 파일 ACL (배포판별 추가 권한 확인)
getfacl /var/log/journal/*/ 2>/dev/null | grep -E 'group|user'
# 로그 디렉터리 안에서 비정상 권한 탐색
find /var/log -type f \( -perm -o+r -o -perm -o+w \) -printf '%m %u:%g %p\n'

위 이미지는 Ubuntu 24.04 실습 환경에서 실제로 실행한 결과로, syslog:adm 소유와 0640 권한을 확인할 수 있습니다.
아래는 판단 기준 설명용 예시 출력입니다.
[예시 출력 · 정상] 600 root:root /var/log/secure
[예시 출력 · 정상] 640 syslog:adm /var/log/auth.log
[예시 출력 · 위험] 666 root:root /var/log/secure ← 누구나 쓰기 가능
[예시 출력 · 위험] 644 deploy:deploy /var/log/secure ← 일반 사용자 소유
| 확인 항목 | 기대값 | 벗어났을 때 |
|---|---|---|
| other 권한 | --- | o+r → 정보 노출, o+w → 변조 가능 |
| 소유자 | root / syslog | 일반 사용자 → 해당 계정이 로그를 조작 가능 |
| 그룹 | root / adm | adm 구성원 목록을 확인 (불필요 계정 포함 여부) |
| 저널 그룹 | systemd-journal | 비인가 사용자 포함 시 전체 시스템 로그 열람 가능 |
ctime)이 침해 시간대와 겹친다./var/log/secure(auth.log)에 usermod -aG adm 흔적 확인.| 단계 | 적용 |
|---|---|
| Detection | Wazuh FIM으로 /var/log 권한·소유자 변경 감시, usermod -aG adm 등 그룹 변경 룰 |
| Triage | 권한 변경 Alert → 누가(auid) 변경했는지 audit 로그로 확인 |
| Investigation | 권한 변경 이전/이후의 로그 크기·내용 비교 |
| Response | 권한 원복, 그룹 구성원 정리, 원격 로그와 대조해 누락분 확인 |
[ ] 인증/시스템/감사 로그 권한과 소유자 확인
[ ] adm / systemd-journal / wheel 구성원 확인
[ ] /var/log 내 o+r, o+w 파일 탐색
[ ] 배포판별 기대 권한 차이 설명 가능
[ ] root 탈취 후 로컬 로그 신뢰도 한계 설명 가능
[ ] 권한 변경 시각(ctime)과 사고 시간대 비교
| 구분 | 글 |
|---|---|
| ◀ 이전 글 | 04. Linux 로그 파일과 디렉터리 확인 방법 |
| ▶ 다음 글 | 06. Linux 로그의 시간 정보 이해 |
| 시리즈 | Linux 로그 경로 정리 전체 보기 |
| 선행 시리즈 | 리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 · Linux 시스템 보안 기초 |