맨위로가기

Chattr

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

Chattr은 리눅스 및 BSD 계열 시스템에서 파일 및 디렉토리의 속성을 변경하고 나열하는 데 사용되는 명령어이다. 리눅스에서는 chattr, lsattr 명령어를 통해 ext2, ext3, ext4, XFS, ReiserFS, JFS, OCFS2, btrfs 파일 시스템의 속성을 제어하며, BSD 계열 시스템에서는 chflags 명령어를 사용하여 UFS, APFS, HFS+, SMB, AFP, FAT 파일 시스템의 플래그를 관리한다. Chattr 명령어는 파일의 접근 시간 기록 방지, 추가 모드 접근 허용, 압축, 삭제 시 데이터 0으로 채우기 등 다양한 속성을 설정할 수 있으며, chflags는 보관, 덤프 금지, 불변, 숨김 등의 플래그를 지원한다. 이러한 기능은 보안 강화, 시스템 관리 효율성 증진, 특정 파일 시스템 기능 활용 등에 기여한다.

더 읽어볼만한 페이지

  • 유닉스 파일 시스템 관련 소프트웨어 - Filesystem in Userspace
    Filesystem in Userspace (FUSE)는 사용자 공간에서 파일 시스템을 구현하는 인터페이스로, 커널 수정 없이 파일 시스템 개발을 가능하게 하며, libfuse 라이브러리를 통해 다양한 운영체제 및 프로그래밍 언어를 지원한다.
  • 유닉스 파일 시스템 관련 소프트웨어 - Chmod
    chmod는 파일 및 디렉터리의 접근 권한을 변경하는 유닉스 명령어이며, 문자열 또는 숫자 모드를 사용하여 권한을 설정하고 재귀적으로 하위 디렉터리에도 적용할 수 있다.
Chattr - [IT 관련 정보]에 관한 문서
chattr
종류명령어
운영체제리눅스
플랫폼크로스 플랫폼
개발자Remy Card
chflags
운영체제BSD-like 시스템, macOS 포함
플랫폼크로스 플랫폼
종류명령어
일반 정보
명령어 종류



매뉴얼 페이지

2. 리눅스 시스템 (chattr, lsattr)

`-A` 해제파일 접근 시 `atime` 기록을 수정하지 않아 디스크 I/O 작업을 줄인다.추가 전용`a``+a` 설정
`-a` 해제[4]파일을 추가 모드로만 열 수 있다.압축됨`c``+c` 설정
`-c` 해제[5]파일을 자동으로 압축하여 저장한다. 파일에서 읽으면 압축되지 않은 데이터를 반환하고, 파일에 쓰면 데이터를 디스크에 저장하기 전에 압축한다.쓰기 시 복사 없음`C``+C` 설정
`-C` 해제[6]쓰기 시 복사(CoW) 업데이트를 적용하지 않는다.동기 디렉토리 업데이트`D``+D` 설정
`-D` 해제디렉토리 변경 사항을 디스크에 동기적으로 기록한다. 이는 파일의 하위 집합에 적용되는 `dirsync` 마운트 옵션과 동일하다.덤프 없음`d``+d` 설정
`-d` 해제`dump` 프로그램 실행 시 백업 대상에서 제외한다.변경 불가`i``+i` 설정
`-i` 해제[4]파일을 수정, 삭제, 이름 변경, 링크 생성할 수 없게 한다. (슈퍼유저도 제한)데이터 저널링`j``+j` 설정
`-j` 해제[7]파일 데이터를 ext3 저널에 먼저 기록한다. 파일 시스템이 `"data=journal"` 옵션으로 마운트된 경우 모든 파일 데이터는 이미 저널링되므로 이 속성은 아무런 효과가 없다.보안 삭제`s``+s` 설정
`-s` 해제[5][8]파일 삭제 시 해당 블록을 0으로 채워 디스크에 다시 기록한다.동기 업데이트`S``+S` 설정
`-S` 해제파일 수정 시 변경 사항을 디스크에 동기적으로 기록한다. 이는 파일의 하위 집합에 적용되는 `sync` 마운트 옵션과 동일하다.디렉토리 계층 구조의 최상위`T``+T` 설정
`-T` 해제Orlov 블록 할당자의 목적으로 디렉토리 계층 구조의 최상위로 간주된다.테일 머지 없음`t``+t` 설정
`-t` 해제테일 머지를 지원하는 파일 시스템의 경우, 이 속성이 있는 파일은 파일 끝에 있는 부분 블록 조각이 다른 파일과 병합되지 않는다.삭제 불가`u``+u` 설정
`-u` 해제[5]이 속성이 설정된 파일이 삭제되면 내용이 저장된다. 이를 통해 사용자는 복구를 요청할 수 있다.압축 오류`E`실험적인 압축 패치에서 압축 파일에 압축 오류가 있음을 나타내는 데 사용된다.익스텐트 형식`e`파일이 디스크의 블록을 매핑하기 위해 익스텐트를 사용하고 있음을 나타낸다.대용량 파일`h`파일이 블록을 섹터 단위가 아닌 파일 시스템 블록 크기 단위로 저장하고 있음을 나타낸다.인덱싱된 디렉토리`I`HTree 프로그램 코드에서 해시 트리로 디렉토리가 인덱싱되고 있음을 나타내는 데 사용된다.압축 원시 접근`X`실험적인 압축 패치에서 압축 파일의 원시 내용에 직접 접근할 수 있음을 나타내는 데 사용된다.압축된 더티 파일`Z`실험적인 압축 패치에서 압축 파일이 "더티"임을 나타내는 데 사용된다.버전 / 생성 번호`-v``-v 버전`파일의 버전/생성 번호.


2. 1. 파일 시스템 지원

`chattr`(속성 조작)과 `lsattr`(속성 나열) 명령어는 원래 ext2, ext3, ext4 파일 시스템에 특화되어 있었으며, e2fsprogs 패키지의 일부로 제공된다.

하지만, 이 기능은 이후 XFS, ReiserFS, JFS, OCFS2를 포함한 다른 많은 시스템으로 전부 또는 부분적으로 확장되었다. btrfs 파일 시스템은 속성 기능, 특히 CoW(copy-on-write)와 관련된 느린 성능으로 인해 btrfs의 내장 CoW 기능을 끄는 `C` 플래그를 포함한다.

2. 2. chattr 명령어

`chattr` 명령어는 파일 및 디렉터리의 속성을 변경하는 데 사용된다. 명령어 형식은 다음과 같다.



chattr [-RVf] [-+=AacDdijsTtSu] [-v version] files...

2. 3. lsattr 명령어

`lsattr` 명령어 형식(gnu 1.41.3)은 다음과 같다.

```bash

lsattr [ -RVadv ] [ files... ]

```

주요 옵션은 다음과 같다.

2. 4. 속성

`-A` 해제파일 접근 시 `atime` 기록을 수정하지 않아 디스크 I/O 작업을 줄인다.추가 전용`a``+a` 설정
`-a` 해제[4]파일을 추가 모드로만 열 수 있다.압축됨`c``+c` 설정
`-c` 해제[5]파일을 자동으로 압축하여 저장한다. 파일에서 읽으면 압축되지 않은 데이터를 반환하고, 파일에 쓰면 데이터를 디스크에 저장하기 전에 압축한다.쓰기 시 복사 없음`C``+C` 설정
`-C` 해제[6]쓰기 시 복사(CoW) 업데이트를 적용하지 않는다.동기 디렉토리 업데이트`D``+D` 설정
`-D` 해제디렉토리 변경 사항을 디스크에 동기적으로 기록한다. 이는 파일의 하위 집합에 적용되는 `dirsync` 마운트 옵션과 동일하다.덤프 없음`d``+d` 설정
`-d` 해제`dump` 프로그램 실행 시 백업 대상에서 제외한다.변경 불가`i``+i` 설정
`-i` 해제[4]파일을 수정, 삭제, 이름 변경, 링크 생성할 수 없게 한다. (슈퍼유저도 제한)데이터 저널링`j``+j` 설정
`-j` 해제[7]파일 데이터를 ext3 저널에 먼저 기록한다. 파일 시스템이 `"data=journal"` 옵션으로 마운트된 경우 모든 파일 데이터는 이미 저널링되므로 이 속성은 아무런 효과가 없다.보안 삭제`s``+s` 설정
`-s` 해제[5][8]파일 삭제 시 해당 블록을 0으로 채워 디스크에 다시 기록한다.동기 업데이트`S``+S` 설정
`-S` 해제파일 수정 시 변경 사항을 디스크에 동기적으로 기록한다. 이는 파일의 하위 집합에 적용되는 `sync` 마운트 옵션과 동일하다.디렉토리 계층 구조의 최상위`T``+T` 설정
`-T` 해제Orlov 블록 할당자의 목적으로 디렉토리 계층 구조의 최상위로 간주된다. `ext3` 및 `ext4`에서 사용되는 블록 할당자에 대한 힌트이며, 이 디렉토리 아래의 하위 디렉토리가 관련이 없으므로 할당 목적으로 분산되어야 함을 나타낸다. 예를 들어 `/home` 디렉토리에 `T` 속성을 설정하는 것은 매우 좋은 생각이다. 그러면 `/home/john`과 `/home/mary`가 별도의 블록 그룹에 배치된다. 이 속성이 설정되지 않은 디렉토리에 대해 Orlov 블록 할당자는 가능한 경우 하위 디렉토리를 더 가깝게 그룹화하려고 시도한다.테일 머지 없음`t``+t` 설정
`-t` 해제테일 머지를 지원하는 파일 시스템의 경우, 이 속성이 있는 파일은 파일 끝에 있는 부분 블록 조각이 다른 파일과 병합되지 않는다. 이는 파일 시스템을 직접 읽고 테일 병합된 파일을 이해하지 못하는 LILO와 같은 응용 프로그램에 필요하다.삭제 불가`u``+u` 설정
`-u` 해제[5]이 속성이 설정된 파일이 삭제되면 내용이 저장된다. 이를 통해 사용자는 복구를 요청할 수 있다.압축 오류`E`실험적인 압축 패치에서 압축 파일에 압축 오류가 있음을 나타내는 데 사용된다.익스텐트 형식`e`파일이 디스크의 블록을 매핑하기 위해 익스텐트를 사용하고 있음을 나타낸다.대용량 파일`h`파일이 블록을 섹터 단위가 아닌 파일 시스템 블록 크기 단위로 저장하고 있음을 나타낸다. 이는 파일이 2TB보다 크거나 한때 그랬음을 의미한다.인덱싱된 디렉토리`I`HTree 프로그램 코드에서 해시 트리로 디렉토리가 인덱싱되고 있음을 나타내는 데 사용된다.압축 원시 접근`X`실험적인 압축 패치에서 압축 파일의 원시 내용에 직접 접근할 수 있음을 나타내는 데 사용된다.압축된 더티 파일`Z`실험적인 압축 패치에서 압축 파일이 "더티"임을 나타내는 데 사용된다.버전 / 생성 번호`-v``-v 버전`파일의 버전/생성 번호.


2. 4. 1. 주요 속성

`chattr(1)` 리눅스 매뉴얼 페이지에 따른 리눅스 파일 시스템의 파일 속성
속성의미 및 근거
`atime` 업데이트 없음 (A)파일 접근 시 `atime` 기록을 수정하지 않아 디스크 I/O 작업을 줄인다.
추가 전용 (a)파일을 추가 모드로만 열 수 있다.[4]
압축됨 (c)파일을 자동으로 압축하여 저장한다.[5] 파일에서 읽으면 압축되지 않은 데이터를 반환하고, 파일에 쓰면 데이터를 디스크에 저장하기 전에 압축한다.
쓰기 시 복사 없음 (C)쓰기 시 복사(CoW) 업데이트를 적용하지 않는다.[6]
동기 디렉토리 업데이트 (D)디렉토리 변경 사항을 디스크에 동기적으로 기록한다. 이는 파일의 하위 집합에 적용되는 `dirsync` 마운트 옵션과 동일하다.
덤프 없음 (d)`dump` 프로그램 실행 시 백업 대상에서 제외한다.
변경 불가 (i)파일을 수정, 삭제, 이름 변경, 링크 생성할 수 없게 한다. (슈퍼유저도 제한)[4]
데이터 저널링 (j)파일 데이터를 ext3 저널에 먼저 기록한다.[7] 파일 시스템이 `"data=journal"` 옵션으로 마운트된 경우 모든 파일 데이터는 이미 저널링되므로 이 속성은 아무런 효과가 없다.
보안 삭제 (s)파일 삭제 시 해당 블록을 0으로 채워 디스크에 다시 기록한다.[5][8]
동기 업데이트 (S)파일 수정 시 변경 사항을 디스크에 동기적으로 기록한다. 이는 파일의 하위 집합에 적용되는 `sync` 마운트 옵션과 동일하다.


2. 4. 2. 기타 속성

`-t` 해제테일 머지를 지원하는 파일 시스템의 경우, 이 속성이 있는 파일은 파일 끝에 있는 부분 블록 조각이 다른 파일과 병합되지 않는다. 이는 파일 시스템을 직접 읽고 테일 병합된 파일을 이해하지 못하는 LILO와 같은 응용 프로그램에 필요하다.삭제 불가u`+u` 설정
`-u` 해제[5]이 속성이 설정된 파일이 삭제되면 내용이 저장된다. 이를 통해 사용자는 복구를 요청할 수 있다.압축 원시 접근X(사용 불가)실험적인 압축 패치에서 압축 파일의 원시 내용에 직접 접근할 수 있음을 나타내는 데 사용된다.압축된 더티 파일Z(사용 불가)실험적인 압축 패치에서 압축 파일이 "더티"임을 나타내는 데 사용된다.버전/생성 번호`-v``-v 버전`파일의 버전/생성 번호.


3. BSD 계열 시스템 (chflags)

BSD 계열 시스템에서 `chflags` 명령어는 파일 시스템의 확장 속성을 관리하는 데 사용된다.[1] 이 명령어는 파일이나 디렉터리의 특별한 속성을 설정하거나 해제하여 파일 시스템의 동작 방식을 변경할 수 있다.

`chflags` 명령어의 기본 형식은 다음과 같다.

```bash

chflags [-R [-H | -L | -P]] flags file ...

```

여기서 사용되는 옵션은 다음과 같다.



BSD 계열 시스템에서 파일의 플래그를 표시하는 표준 명령어는 없지만, `ls` 명령어에 `-lo` 또는 `-lO` 옵션을 추가하여 확인할 수 있다.[1]

BSD 파일 시스템에서 사용 가능한 주요 속성은 다음과 같다.

파일 속성
속성ls영어 플래그chflags영어 플래그소유자
설정 가능
OS 지원의미 및 근거
숨김hidden영어hidden, uhidden영어macOS, FreeBSDGUI에서 기본적으로 파일이 숨겨짐 (그러나 ls영어에서는 숨겨지지 않음)
추적됨tracked영어tracked영어macOS파일 수정 및 삭제가 추적됨
제한됨restricted영어restricted영어아니요macOS파일이 시스템 무결성 보호에 의해 보호됨; 확장 속성 com.apple.rootless영어가 함께 제공됨; 복구 모드에서 플래그를 설정하거나 해제해야 함
압축됨compressed영어아니요macOS파일이 HFS로 압축됨 (읽기 전용 플래그); APFS 형식 볼륨에서는 사용할 수 없음
데이터 보관소아니요macOS특정 권한 없이 접근을 금지하기 위해 핵심 시스템에서 설정된 macOS Mojave 이후의 숨겨진 개인 정보 보호 플래그
오프라인offline영어offline, uoffline영어FreeBSD파일이 오프라인 상태임
스냅샷snapshot영어아니요FreeBSD, NetBSD파일이 스냅샷 파일임 (읽기 전용 플래그)
희소sparse영어sparse, usparse영어FreeBSD모두 0으로 쓰여진 내용은 "홀"로 기록될 수 있음
보관되어야 함uarch영어uarch, uarchive영어FreeBSD파일을 보관해야 함


3. 1. 파일 시스템 지원

`chflags` 명령어는 특정 파일 시스템에 국한되지 않는다. BSD 시스템의 UFS, macOS의 APFS, HFS+, SMB, AFP, FAT 파일 시스템 등은 적어도 일부 플래그를 지원한다.[1]

3. 2. chflags 명령어

명령 형식은 다음과 같다.

```bash

chflags [-R [-H | -L | -P]] flags file ...

```

3. 3. 플래그 표시

BSD 계열 시스템은 일반적으로 파일의 플래그를 표시하기 위한 기본 사용자 수준 명령어가 없다. ls 명령어는 시스템에 따라 `-lo` 또는 `-lO` 플래그를 사용하여 이를 수행할 수 있다.[1]

3. 4. 속성

wikitext

BSD 파일 시스템에서 사용 가능한 주요 속성은 다음과 같다. 모든 전통적인 속성은 최고 사용자가 설정하거나 해제할 수 있으며, 일부는 파일 소유자도 설정하거나 해제할 수 있다.

파일 속성
속성ls영어 플래그chflags영어 플래그소유자 설정 가능OS 지원의미 및 근거
숨김hidden영어hidden, uhidden영어macOS, FreeBSDGUI에서 기본적으로 파일이 숨겨짐 (그러나 ls영어에서는 숨겨지지 않음)
추적됨tracked영어tracked영어macOS파일 수정 및 삭제가 추적됨
제한됨restricted영어restricted영어아니요macOS파일이 시스템 무결성 보호에 의해 보호됨; 확장 속성 com.apple.rootless영어가 함께 제공됨; 복구 모드에서 플래그를 설정하거나 해제해야 함
압축됨compressed영어아니요macOS파일이 HFS로 압축됨 (읽기 전용 플래그); APFS 형식 볼륨에서는 사용할 수 없음
데이터 보관소아니요macOS특정 권한 없이 접근을 금지하기 위해 핵심 시스템에서 설정된 macOS Mojave 이후의 숨겨진 개인 정보 보호 플래그
오프라인offline영어offline, uoffline영어FreeBSD파일이 오프라인 상태임
스냅샷snapshot영어아니요FreeBSD, NetBSD파일이 스냅샷 파일임 (읽기 전용 플래그)
희소sparse영어sparse, usparse영어FreeBSD모두 0으로 쓰여진 내용은 "홀"로 기록될 수 있음
보관되어야 함uarch영어uarch, uarchive영어FreeBSD파일을 보관해야 함


3. 4. 1. 주요 속성

Chattr영어의 주요 속성은 다음과 같다.

파일 속성
속성의미 및 근거
보관됨 (arch)파일이 보관되었음을 나타낸다.
불투명 (opaque)유니온 마운트에서 디렉토리를 불투명하게 만든다.
덤프 금지 (nodump)파일을 덤프할 수 없게 한다.
시스템 추가 전용 (sappnd)파일의 기존 데이터를 덮어쓸 수 없고 파일을 자를 수 없다.
사용자 추가 전용 (uappnd)시스템 추가 전용(sappnd)과 동일하지만, 사용자 권한으로 설정/해제 가능하다.
시스템 불변 (schg)파일을 변경, 이름 변경, 이동, 삭제할 수 없다.
사용자 불변 (uchg)시스템 불변(schg)과 동일하지만, 사용자 권한으로 설정/해제 가능하다.
시스템 연결 해제 금지 (sunlnk)파일을 제거, 이름 변경, 마운트할 수 없다. (macOS에서는 단일 사용자 모드에서 설정/해제)
사용자 연결 해제 금지 (uunlnk)시스템 연결 해제 금지(sunlnk)와 동일하지만, 사용자 권한으로 설정/해제 가능하다. (FreeBSD, DragonFly BSD)


3. 4. 2. 기타 속성

wikitext

파일 속성
속성ls영어 플래그chflags영어 플래그소유자 설정 가능OS 지원의미 및 근거
보관됨arch영어arch영어, archived영어아니요전체파일이 보관됨
불투명opaque영어opaque영어전체디렉토리가 유니온 마운트를 통해 볼 때 불투명함
덤프 금지nodump영어nodump영어전체파일을 덤프할 수 없음
시스템 추가 전용sappnd영어sappnd영어, sappend영어아니요전체파일의 기존 데이터를 덮어쓸 수 없으며 파일도 잘릴 수 없음
사용자 추가 전용uappnd영어uappnd영어, uappend영어전체파일의 기존 데이터를 덮어쓸 수 없으며 파일도 잘릴 수 없음
시스템 불변schg영어schg영어, schange영어, simmutable영어아니요전체파일을 변경, 이름 변경, 이동 또는 제거할 수 없음
사용자 불변uchg영어uchg영어, uchange영어, uimmutable영어전체파일을 변경, 이름 변경, 이동 또는 제거할 수 없음
시스템 연결 해제 금지sunlnk영어sunlnk, sunlink영어아니요FreeBSD, DragonFly BSD, macOS파일을 제거, 이름 변경 또는 마운트할 수 없음; macOS에서는 이 플래그를 단일 사용자 모드에서 설정하거나 해제해야 함
사용자 연결 해제 금지uunlnk영어uunlnk, uunlink영어FreeBSD, DragonFly BSD파일을 제거, 이름 변경 또는 마운트할 수 없음
숨김hidden영어hidden, uhidden영어macOS, FreeBSDGUI에서 기본적으로 파일이 숨겨짐 (그러나 ls영어에서는 숨겨지지 않음)
추적됨tracked영어tracked영어macOS파일 수정 및 삭제가 추적됨
제한됨restricted영어restricted영어아니요macOS파일이 시스템 무결성 보호에 의해 보호됨; 확장 속성 com.apple.rootless영어가 함께 제공됨; 복구 모드에서 플래그를 설정하거나 해제해야 함
압축됨compressed영어아니요macOS파일이 HFS로 압축됨 (읽기 전용 플래그); APFS 형식 볼륨에서는 사용할 수 없음
데이터 보관소아니요macOS특정 권한 없이 접근을 금지하기 위해 핵심 시스템에서 설정된 macOS Mojave 이후의 숨겨진 개인 정보 보호 플래그
오프라인offline영어offline, uoffline영어FreeBSD파일이 오프라인 상태임
스냅샷snapshot영어아니요FreeBSD, NetBSD파일이 스냅샷 파일임 (읽기 전용 플래그)
희소sparse영어sparse, usparse영어FreeBSD모두 0으로 쓰여진 내용은 "홀"로 기록될 수 있음
보관되어야 함uarch영어uarch, uarchive영어FreeBSD파일을 보관해야 함


4. 한국 IT 환경에서의 활용

(요약 및 참조할 원문 소스가 제공되지 않아, '한국 IT 환경에서의 활용' 섹션 내용을 작성할 수 없습니다.)

참조

[1] Manpage chmod
[2] Manpage ls
[3] Manpage chflags
[4] 문서
[5] 문서
[6] 문서
[7] 문서
[8] 문서
[9] Manpage chmod
[10] Manpage ls



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com