웹사이트 검색

초보자를 위한 Linux chattr 명령 자습서(예제 5개)


종종 Linux 컴퓨터는 다른 사용자가 사용합니다. 따라서 이러한 사용자가 공통 파일 그룹에 액세스할 가능성이 있습니다. 이로 인해 실수로 삭제하거나 중요한 파일을 편집하는 것과 같은 문제가 발생할 수 있으며 이는 관리자로서 절대 원하지 않는 문제입니다.

다행히 이러한 경우를 위해 설계된 chattr이라는 명령이 있습니다. 이 자습서에서는 이해하기 쉬운 몇 가지 예를 들어 이 도구를 설명합니다. 그러나 그 전에 여기에 있는 모든 예제는 Ubuntu 22.04 LTS 및 Debian 11에서 테스트되었음을 언급해야 합니다.

리눅스 chattr 명령어

기본적으로 chattr 명령은 Linux 파일 시스템에서 파일 속성을 변경하는 데 사용됩니다. 구문은 다음과 같습니다.

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 명령을 사용하는 방법?

파일을 읽기 전용으로 만들고 싶다고 가정합니다. 따라서 +i 옵션과 파일 이름을 입력으로 사용하여 chattr 명령을 실행하기만 하면 됩니다.

예를 들어:

chattr +i test.txt

다음 스크린샷은 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]

예를 들어, 다음 스크린샷은 i 특성이 디렉터리의 모든 파일에 적용되었음을 명확하게 나타내는 lsattr 출력을 보여줍니다.

재확인을 위해 -i 옵션을 사용한 후의 출력이 여기에 있습니다.

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

결론

시스템 관리자이거나 일반적으로 Linux 시스템에서 사용자를 관리하는 경우 chattr이 반드시 알아야 할 명령줄 도구라는 데 동의할 것입니다. 명령을 효과적으로 사용하면 번거로움을 많이 줄일 수 있습니다. 이 문서는 명령을 시작하기에 충분해야 합니다. 여기에서 논의한 예제를 연습했으면 도구 설명서 페이지로 이동하여 자세한 내용을 알아보세요.