본문으로 건너뛰기

chattr로 파일 속성을 어떻게 관리하나요?

💡 요약 정리

  • chattr 명령어는 리눅스에서 파일 또는 디렉토리에 특수 속성을 설정하는 데 사용됩니다.
  • 속성 변경을 위해 +, -, = 기호와 함께 특정 속성 문자를 조합하여 사용합니다.
  • -R, -V, -f 옵션으로 디렉토리 전체 적용, 결과 보기, 에러 무시 설정이 가능합니다.
  • 파일에 부여된 속성은 lsattr 명령어로 확인할 수 있습니다.

1. chattr 명령어 사용 방법

chattr(change attribute)은 리눅스 파일시스템에서 파일의 숨은 속성을 변경하는 명령어입니다.

chattr [옵션] +-=속성 파일 or 디렉토리
chattr -RVf +-=ASacDdIijsTtu file or directory

주요 옵션

  • -R: 디렉토리의 속성을 변경할 때, 하위 디렉토리의 모든 파일에 적용됩니다.
  • -V: chattr 버전과 함께 결과를 보여줍니다.

기호의 의미

  • +: 지정한 속성을 추가합니다.
  • -: 지정한 속성을 삭제합니다.
  • =: 기존 속성을 초기화하고 지정된 속성만 설정합니다.

속성 종류

  • A: 파일이 접근(access)될 때 atime(접근 시간)이 변경되지 않도록 제한합니다.
  • a: 파일 내용이 append(추가)만 가능하도록 합니다.
    • vi로는 수정되지 않으며, >>처럼 리디렉션으로만 추가할 수 있습니다.
  • i: immutable 속성으로, 가장 많이 사용되는 설정입니다.
    • 파일의 추가, 변경, 삭제 모두 불가능합니다.
    • root 계정조차도 삭제와 변경이 불가능합니다.
chattr로 추가한 속성은 lsattr 명령어로 확인할 수 있습니다.

2. chattr 명령어 사용 예

시스템 설정 보호 또는 특정 파일 변경 금지용으로 chattr을 사용한 예시는 다음과 같습니다.

[root@localhost ~]# chattr +i /etc/passwd
  • /etc/passwd 파일에 변경 및 삭제 불가 속성 부여
[root@localhost ~]# lsattr /etc/passwd
----i-------- /etc/passwd
  • lsattr 명령으로 설정된 속성 확인
[root@localhost ~]# chattr -i /etc/passwd
[root@localhost ~]# lsattr /etc/passwd
------------- /etc/passwd
  • 변경 및 삭제 불가 속성 제거 후 lsattr로 확인

디렉토리 전체에 immutable 속성 적용

[root@localhost home]# chattr +i -R /home/jook
  • /home/jook 디렉토리와 그 하위 디렉토리/파일 전체에 변경 및 삭제 불가 속성 부여

결과를 함께 확인하는 방식

[root@localhost ~]# chattr +i -V /home/jook
chattr 1.39 (29-May-2006)
Flags of /home/jook set as ----i--------
  • -V 옵션을 사용해 속성 부여 결과를 확인하며 immutable 속성이 적용된 것을 확인할 수 있습니다.