김 컴퓨터


chattr (Change Attribute)

chattr은 리눅스 제2 확장 파일 시스템(ext2/3/4)에서 파일의 고유 속성을 변경하는 명령어입니다. 이 명령어의 가장 무서운 점은 root 권한으로도 무시할 수 없는 제약을 걸 수 있다는 것입니다. 해킹 방지나 시스템 핵심 설정 파일 보호를 위해 실무에서 보안 도구로 활용됩니다.


1. 기본 사용법

sudo chattr [연산자][속성] [파일명]

2. 주요 속성 (가장 많이 쓰는 것)

속성 이름 설명
i immutable 불변. 수정, 삭제, 이름 변경, 링크 생성이 모두 불가능합니다. (root도 못 지움)
a append only 추가 전용. 기존 내용은 수정/삭제할 수 없고, 내용 추가만 가능합니다. (로그 파일용)
s secure deletion 파일 삭제 시 해당 블록을 0으로 채워 완전히 삭제(복구 불가)합니다.
c compressed 커널이 투명하게 파일을 압축하여 저장합니다.

3. 실무 활용 예시

① 관리자도 삭제 못 하게 파일 잠그기 (보안 강화)

해커가 들어와도 /etc/passwd 같은 중요 파일을 수정하지 못하게 막습니다.

sudo chattr +i /etc/shadow
# 이제 sudo rm으로도 지워지지 않습니다!

② 로그 파일 조작 방지 (내용 추가만 허용)

누군가 침입 흔적을 지우기 위해 로그를 삭제하는 것을 막습니다.

sudo chattr +a /var/log/secure

③ 속성 확인하기 (ls 대신 lsattr)

일반 ls -l로는 이 속성이 보이지 않습니다. 전용 명령어를 써야 합니다.

lsattr /etc/shadow
# 결과 예: ----i--------- /etc/shadow

4. [주의] 잠긴 파일 푸는 법

파일을 지우려는데 "Operation not permitted" 에러가 뜨고 sudo로도 안 된다면 chattr을 의심하세요. 다시 풀려면 -i 옵션을 써야 합니다.

sudo chattr -i [파일명]