리눅스 명령어 · 3 min read · Sep 15, 2025

리눅스 chattr 명령어 초보자 튜토리얼 (5가지 예제)

chattr 명령어는 리눅스에서 파일 시스템의 파일 속성을 변경할 수 있는 유틸리티입니다. 이 명령어는 일반적인 권한으로는 달성할 수 없는 방식으로 파일 동작을 수정할 수 있는 속성을 설정하여 파일에 대한 향상된 제어를 제공합니다. 예를 들어, chattr를 사용하면 파일을 불변으로 만들 수 있는 “+i” 속성을 설정하여 루트 사용자조차도 파일을 수정, 삭제 또는 이름 변경할 수 없도록 합니다. 다른 속성으로는 파일을 추가 모드로만 열 수 있도록 허용하는 “+a”와 파일 내용을 복구할 수 있도록 저장하는 “+u”가 있습니다. 이러한 속성은 중요한 시스템 파일을 보호하고, 우발적인 삭제를 방지하며, 파일을 보다 세밀하게 관리하는 데 특히 유용할 수 있습니다. 이 명령어는 슈퍼유저 권한으로 실행해야 하며, 일반적으로 시스템 관리자가 리눅스 파일 시스템 내의 중요한 파일의 보안과 무결성을 강화하기 위해 사용합니다.

종종 리눅스 컴퓨터는 여러 사용자가 사용하므로 이러한 사용자가 공통의 파일 그룹에 접근할 수 있습니다. 이는 중요한 파일의 우발적인 삭제 또는 편집과 같은 문제를 일으킬 수 있으며, 이는 관리자로서 절대 원하지 않는 상황입니다.

이 튜토리얼에서는 이해하기 쉬운 몇 가지 예제를 통해 이 도구를 설명하겠습니다. 그러나 그 전에 여기의 모든 예제가 Ubuntu 24.04 LTS와 Debian 12에서 테스트되었다는 점을 언급해야 합니다.

리눅스 chattr 명령어

chattr 명령어는 리눅스 파일 시스템에서 파일 속성을 변경하는 데 사용됩니다. 다음은 그 구문입니다:

chattr [ -RVf ] [ -v version ] [ mode ] files...

그리고 매뉴얼 페이지에서 다음과 같이 설명합니다:

       chattr changes the file attributes on a Linux file system.  

       The format of a symbolic mode is +-=[aAcCdDeijsStTu].  

       The  operator  '+'  causes  the  selected attributes to be added to the  
       existing attributes of the files; '-' causes them to  be  removed;  and  
       '=' causes them to be the only attributes that the files have.  

       The  letters  'aAcCdDeijsStTu' select the new attributes for the files:  
       append only (a), no atime updates (A), compressed (c), no copy on write  
       (C), no dump (d), synchronous directory updates (D), extent format (e),  
       immutable (i), data journalling (j), secure deletion  (s),  synchronous  
       updates  (S),  no tail-merging (t), top of directory hierarchy (T), and  
       undeletable (u).  

       The following attributes are read-only, and may be listed by  lsattr(1)  
       but  not  modified  by  chattr:  compression  error (E), huge file (h),  
       indexed directory (I), inline data (N), compression raw access (X), and  
       compressed dirty file (Z).  

       Not  all  flags  are supported or utilized by all filesystems; refer to  
       filesystem-specific man pages such as btrfs(5), ext4(5), and xfs(5) for  
       more filesystem-specific details.

다음은 chattr 명령어가 어떻게 작동하는지에 대한 좋은 아이디어를 제공하는 Q&A 스타일의 몇 가지 예제입니다.

Q1. chattr 명령어를 사용하는 방법은?

파일을 읽기 전용으로 만들고 싶다고 가정해 보겠습니다. 그렇게 하려면 chattr 명령어를 +i 옵션과 파일 이름을 입력하여 실행합니다.

예를 들어:

chattr +i test.txt

다음 스크린샷은 chattr를 사용하여 파일이 읽기 전용으로 설정된 후 다른 작업이 성공하지 않았음을 보여줍니다.

chattr 명령어 사용 방법

참고: 이미 관찰했겠지만, chattr 명령어를 사용하려면 루트 권한이 필요합니다.

Q2. chattr로 부여된 읽기 전용 제한을 제거하는 방법은?

간단합니다 - +i 대신 -i 옵션을 사용하면 됩니다. 예를 들어:

chattr -i test.txt

따라서 -i 옵션으로 읽기 전용 속성이 제거된 것을 볼 수 있습니다.

Q3. 파일에 추가 전용 권한을 부여하는 방법은?

때때로 파일에 대한 완전한 제한을 원하지 않을 수 있습니다. 즉, 사용자가 파일에 새 정보를 추가할 수 있도록 하되 기존 정보를 삭제하거나 편집할 수는 없도록 추가 전용 접근을 제공하고 싶을 수 있습니다. 이는 +a 옵션을 통해 Chattr를 사용하여 가능합니다.

chattr +a test.txt

따라서 이제 파일에 추가할 수 있지만 기존 정보를 편집하거나 파일을 삭제할 수는 없음을 알 수 있습니다. 이 동작을 되돌리려면 -a 옵션을 사용하십시오.

chattr -a test.txt

Q4. chattr를 사용하여 디렉토리의 모든 파일에 제한을 적용하는 방법은?

이는 -R 플래그를 사용하여 수행할 수 있으며, 이 플래그는 디렉토리와 그 내용의 속성을 재귀적으로 변경할 수 있게 해줍니다. 예를 들어, test-dir 디렉토리 내의 모든 파일을 읽기 전용으로 만들고 싶다면 다음과 같이 chattr 명령어를 사용하십시오:

chattr -R +i ./test-dir/

다음 스크린샷은 디렉토리 내의 모든 파일에 읽기 전용 제한이 성공적으로 적용되었음을 보여줍니다.

Q5. 파일에 적용된 chattr 속성을 확인하는 방법은?

chattr 속성이 성공적으로 적용되었는지 확인하기 위해 파일을 편집하거나 삭제하는 등의 작업을 시도해 보았습니다. 그러나 속성이 적용되었는지 쉽게 확인할 수 있는 별도의 명령어가 있습니다. 그 명령어는 lsattr입니다.

lsattr [FILENAME]

예를 들어, 다음 스크린샷은 lsattr 출력이 디렉토리 내의 모든 파일에 ‘i’ 속성이 적용되었음을 명확히 제시하고 있습니다.

재확인을 위해 -i 옵션을 사용한 후의 출력을 보여드립니다.

위의 스크린샷에서 볼 수 있듯이 모든 파일에서 읽기 전용 속성이 제거되었습니다.

결론

시스템 관리자이거나 일반적으로 리눅스 머신에서 사용자를 관리하는 경우 chattr는 반드시 알아야 할 명령줄 도구라는 데 동의할 것입니다. 이 명령어를 효과적으로 사용하면 많은 번거로움을 덜 수 있습니다. 이 기사는 명령어를 시작하는 데 충분해야 합니다. 여기에서 논의한 예제를 연습한 후, 도구의 매뉴얼 페이지로 가서 더 많은 정보를 알아보세요.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.