본문 바로가기

리눅스

lsattr 명령어와 chattr 명령어

728x90

lsattr 명령어와 chattr 명령어

Linux 시스템에서 파일 및 디렉토리의 속성을 관리하는 데 사용되는 유틸리티입니다.

lsattr 명령어

lsattr 명령어는 파일 및 디렉토리의 속성을 나열합니다. 파일 속성은 파일이나 디렉토리에 대한 특수한 권한이나 기능을 정의합니다.

기본 구문

lsattr [옵션] [파일 또는 디렉토리]

주요 옵션

  • -a : 모든 파일을 표시합니다.
  • -d : 디렉토리의 속성을 표시합니다.
  • -R : 하위 디렉토리를 재귀적으로 표시합니다.

사용 예시

1. 디렉토리 내 모든 파일 및 디렉토리의 속성 표시

lsattr /path/to/directory
$ lsattr /etc/sudoers
---------------- /etc/sudoers

 

2. 재귀적으로 모든 파일 및 디렉토리의 속성 표시

lsattr -R /path/to/directory
$ lsattr -R /etc
---------------- /etc/fstab
---------------- /etc/crypttab
---------------- /etc/resolv.conf
---------------- /etc/grub.d

/etc/grub.d:
---------------- /etc/grub.d/00_header
---------------- /etc/grub.d/01_users
---------------- /etc/grub.d/10_linux
---------------- /etc/grub.d/20_linux_xen
---------------- /etc/grub.d/20_ppc_terminfo
---------------- /etc/grub.d/30_os-prober
---------------- /etc/grub.d/40_custom
---------------- /etc/grub.d/41_custom
---------------- /etc/grub.d/README
---------------- /etc/grub.d/00_tuned

---------------- /etc/pki

/etc/pki:
---------------- /etc/pki/rpm-gpg
...
728x90

chattr 명령어

chattr 명령어는 파일이나 디렉토리의 속성을 변경합니다. 주로 파일이나 디렉토리에 대한 수정 및 삭제 권한을 제어하고, 파일의 속성을 변경하여 특정 동작을 방지하는 데 사용됩니다.

기본 구문

chattr [옵션] [+/- 속성] [파일 또는 디렉토리]

주요 옵션

  • -R : 디렉토리의 속성을 재귀적으로 변경합니다.
  • -V : 변경된 파일 및 디렉토리를 자세히 출력합니다.
  • -f : 오류 메시지를 출력하지 않습니다.

  • - (제거) : 해당 속성을 제거합니다.
  • + (추가) : 해당 속성을 추가합니다.
  • = (설정) : 해당 속성을 설정합니다.
  • a (append-only) : 파일에 내용을 추가하는 것만 허용하고, 수정이나 삭제를 방지합니다.
  • A (no-atime) : 파일의 마지막 접근 시간 (atime)을 업데이트하지 않습니다. 이를 통해 파일의 atime 업데이트를 방지할 수 있습니다.
  • c (compressed) : 파일을 압축합니다.
  • C (no-copy-on-write) : Copy-on-write를 비활성화합니다. Copy-on-write는 파일이나 디렉토리를 복사할 때 실제로 데이터를 복사하지 않고 새로운 데이터가 쓰일 때만 복사하는 기능입니다.
  • d (no-dump) : 백업 시 파일을 무시합니다.
  • D (synchronous-directory) : 디렉토리 변경 사항이 디스크에 동기화되기를 기다립니다.
  • e (extent format) : 파일을 확장 형식(extent format)으로 사용합니다.
  • i (immutable) : 파일을 읽기 전용으로 만들어 수정이 불가능하게 합니다.
  • j (data journaling) : 파일 데이터를 쓰기 전에 저널링합니다.
  • s (secure deletion) : 파일을 안전하게 삭제합니다. 실제로 데이터를 삭제하지만 파일 시스템에서 재활용할 수 있게 합니다.
  • S (synchronous) : 파일 변경 사항이 디스크에 동기화되기를 기다립니다.
  • t (no tail-merging) : 파일의 끝에 추가되는 데이터를 기존 블록에 합치지 않습니다.
  • T (top of directory hierarchy) : 디렉토리의 최상위로 지정합니다.
  • u (undeletable) : 파일을 삭제할 수 없게 만듭니다.

사용 예시

1. 파일에 대한 속성 변경 (읽기 전용 설정)

chattr +i filename
chattr +i sudoers
$ lsattr sudoers    
----i----------- sudoers

 

2. 디렉토리 및 하위 디렉토리에 대한 속성 변경 (재귀적으로)

chattr -R +i directory
chattr -R +i testdir
$ lsattr -R testdir         
----i----------- testdir/sudoers

 

3. 파일에서 속성 제거 (읽기 전용 해제)

chattr -i filename
chattr -i sudoers
$ lsattr sudoers
---------------- sudoers

 

4. 파일에 대한 숨김 속성 설정

chattr +u filename

 

이러한 명령어들은 시스템 관리 및 보안 관리에서 특정 파일이나 디렉토리에 대한 제어를 용이하게 합니다.

유의할 점은 chattr 명령어는 슈퍼유저(루트) 권한이 필요한 경우가 많기 때문에 주의해서 사용해야 합니다.

 

728x90

'리눅스' 카테고리의 다른 글

리눅스에서 ulimit을 설정하는 방법  (0) 2023.11.30
웹 서버의 성능을 향상시키기 위한 커널 파라미터 튜닝하는 방법  (0) 2023.11.30
rev 명령어  (0) 2023.11.29
cut 명령어  (0) 2023.11.29
youtube-dl 명령어  (0) 2023.11.28