수다를 떨다
chattr원저자 | 레미카드 |
---|---|
운영체제 | 리눅스 |
플랫폼 | 크로스 플랫폼 |
유형 | 명령어 |
운영체제 | macOS를 포함한 BSD 유사 시스템 |
---|---|
플랫폼 | 크로스 플랫폼 |
유형 | 명령어 |
chattr은 리눅스에서 사용자가 파일의 특정 속성을 설정할 수 있도록 하는 명령어입니다. lsattr는 파일의 속성을 표시하는 명령어입니다.
macOS를 포함한 대부분의 BSD 유사 시스템은 속성을 설정하기 위해 항상 유사한 chflags 명령을 사용했지만, 이를 표시하기 위한 명령은 특별히 없습니다. 대신 ls 명령에 대한 특정 옵션이 사용됩니다. chflags 명령은 4.4에서 처음 등장했습니다.BSD.
Solaris에는 이를 조작하기 위한 특별한 명령이 없습니다. 대신 chmods와[1] ls가[2] 사용됩니다.
일반적으로 다른 유닉스 계열 운영 체제에는 유사한 명령어가 없습니다. 비슷한 소리를 내는 명령어 chatr(HP-UX)과 lsattr(AIX)은 존재하지만 서로 관련이 없는 기능을 가지고 있습니다.
무엇보다도 chatr 명령어는 소프트웨어 업그레이드 중에 암호 파일과 특정 시스템 파일을 지울 수 없도록 파일을 불변화하는 데 유용합니다.[3]
Linux 시스템(Chattr 및 lsattr)
파일 시스템 지원
명령줄 도구 chattr(속성을 조작하기 위한) 및 lsattr(속성을 나열하기 위한)은 원래 Second Extended Filesystem 제품군(ext2, ext3, ext4)에 고유했으며 e2fsprogs 패키지의 일부로 사용할 수 있습니다.
그러나 이 기능은 이후 XFS, ReiserFS, JFS 및 OCFS2를 포함한 많은 다른 시스템으로 전체 또는 부분적으로 확장되었습니다. btrfs 파일 시스템은 다음과 같은 속성 기능을 포함합니다. C
플래그 - CoW와 관련된 성능 저하로 인해 btrf의 기본 제공 CoW(Copy-on-write) 기능을 해제합니다.
화술.
chatr 명령의 형태는 다음과 같습니다.
chattr [-RVf] [-+=AacDdijsTtSu] [-v version] files...
-R
디렉터리 및 해당 내용의 속성을 재귀적으로 변경-V
자세히 설명하고 프로그램 버전을 인쇄합니다.-f
대부분의 오류 메시지를 억제합니다.
lsattr description
lsattr 명령의 형식(gnu 1.41.3):
lsattr [ -RVadv ] [파일... ]
-R
디렉터리 및 해당 내용의 속성을 재귀적으로 나열합니다.-V
프로그램 버전을 표시합니다.-a
도트 파일을 포함한 디렉토리의 모든 파일을 나열합니다.-d
목록 내용을 나열하는 것이 아니라 다른 파일과 같은 디렉터리를 나열합니다.
특성
다음과 같은 몇 가지 특성이 있습니다.
기여하다 | lsattr 플래그 | 채트 옵션 | 의미론 및 이론적 근거 |
---|---|---|---|
아니요. atime 업데이트 | A | +A 설정하다-A 치우다 | |
추가만 | a | +a 설정하다-a 치우다[note 1] |
|
압축된 | c | +c 설정하다-c 치우다[note 2] |
|
Copy-on-Write(CoW) 없음 | C | +C 설정하다-C 치우다[note 3] |
|
동기화된 디렉토리 업데이트 | D | +D 설정하다-D 치우다 |
|
덤프 없음 | d | +d 설정하다-d 치우다 | |
압축 오류 | E | (unav가능) |
|
익스텐트 형식 | e | (unav가능) |
|
거대한 파일 | h | (unav가능) |
|
색인화된 디렉토리 | I | (unav가능) | |
불변의 | i | +i 설정하다-i 치우다[note 1] |
|
데이터 저널링 | j | +j 설정하다-j 치우다[note 4] | |
보안 삭제 | s | +s 설정하다-s 치우다[note 2][note 5] |
|
동기식 업데이트 | S | +S 설정하다-S 치우다 |
|
최상위 디렉터리 계층 | T | +T 설정하다-T 치우다 |
|
꼬리 병합 불가 | t | +t 설정하다-t 치우다 | |
삭제 불가 | u | +u 설정하다-u 치우다[note 2] |
|
압축 원시 액세스 | X | (unav가능) |
|
압축된 더티 파일 | Z | (unav가능) |
|
버전/세대번호 | -v | -v version |
|
메모들
- ^ a b 슈퍼유저나 프로세스 중에 다음과 같은 것이 있습니다.
CAP_LINUX_IMMUTABLE
capability는 이러한 속성을 설정하거나 지울 수 있습니다. - ^ a b c 이러한 속성은 현재 메인라인 리눅스 커널에서 구현된 것처럼 ext2 및 ext3 파일 시스템에서는 보장되지 않습니다.
- ^ 이러한 속성은 btrf와 같은 Copy-on-Write 파일 시스템에만 적용됩니다.
- ^ 슈퍼유저나 프로세스 중에 다음과 같은 것이 있습니다.
CAP_SYS_RESOURCE
capability 는 이 속성을 설정하거나 지울 수 있습니다. - ^ 이 속성은 버그 #17872에 보고된 바와 같이 현재 메인라인 리눅스 커널에서 구현된 것처럼 ext4 파일 시스템에서는 보장되지 않습니다.
BSD 유사 시스템(chflags)에서
파일 시스템 지원
chflags 명령은 특정 파일 시스템에만 해당되지 않습니다. BSD 시스템의 UFS와 macOS의 APFS, HFS+, SMB, AFP 및 FAT는 적어도 일부 플래그를 지원합니다.
chflags 설명
chflags 명령의 형태는 다음과 같습니다.
chflags [-R [-H -L -P] 플래그 파일...
-H
-R 옵션을 지정하면 명령줄의 기호 링크가 따릅니다. (트리 횡단에서 마주치는 기호 링크는 따르지 않습니다.)-L
-R 옵션을 지정하면 모든 기호 링크가 뒤따릅니다.-P
-R 옵션을 지정하면 기호 링크가 뒤따르지 않습니다. 기본값입니다.-R
파일 자체가 아닌 파일에 뿌리를 둔 파일 계층의 파일 플래그를 변경합니다.
표시중
일반적으로 BSD와 유사한 시스템에는 파일의 플래그를 표시하기 위한 기본 사용자 수준 명령이 없습니다. ls 명령은 다음 중 하나와 관련이 있습니다. -lo
, 아니면 그 -lO
, 시스템에 따라 플래그가 전달되었습니다.
특성
모든 기존 속성은 슈퍼유저가 설정하거나 지울 수 있습니다. 일부 속성은 파일 소유자가 설정하거나 지울 수도 있습니다. 다음과 같은 몇 가지 특성이 있습니다.
기여하다 | ls 깃발 | chflags flag | 소유자설정가능 | OS 지원 | 의미론 및 이론적 근거 |
---|---|---|---|---|---|
보관중 | 아치형의 | 아치, 아카이브 | 아니요. | 모든. | 파일이 보관됩니다. |
불투명 | 불투명의 | 불투명의 | 네. | 모든. | 유니언 마운트를 통해 볼 때 디렉토리가 불투명합니다. |
덤프 없음 | 덩어리가 없는 | 덩어리가 없는 | 네. | 모든. | 파일을 덤프할 수 없습니다. |
시스템 추가 전용 | 사푼드 | 사펜드, 사펜드 | 아니요. | 모든. | 파일의 기존 데이터를 덮어쓸 수 없으며 파일을 잘라낼 수 없습니다. |
사용자 추가 전용 | 언행이 없는 | uappnd, uappend | 네. | 모든. | 파일의 기존 데이터를 덮어쓸 수 없으며 파일을 잘라낼 수 없습니다. |
시스템 불변 | schg | schg, schange, simulated | 아니요. | 모든. | 파일을 변경, 이름 변경, 이동 또는 제거할 수 없음 |
사용자 불변 | 으으으으 | uug, uchange, uu 불변의 | 네. | 모든. | 파일을 변경, 이름 변경, 이동 또는 제거할 수 없음 |
시스템 노 언링크 | 선크 | 선링크 | 아니요. | FreeBSD, DragonFlyBSD, macOS | 파일을 제거하거나 이름을 바꾸거나 마운트할 수 없습니다. macOS에서는 단일 사용자 모드에서 이 플래그를 설정하거나 지워야 합니다. |
사용자 연결 해제 안 함 | 언락크 | uunlnk, uunlink | 네. | 프리BSD, 드래곤플라이BSD | 파일을 제거, 이름 변경 또는 마운트할 수 없음 |
히든 | 숨은 | 숨겨진, 어히든 | 네. | macOS, FreeBSD | 파일은 기본적으로 GUI에 숨겨져 있습니다(단, ls에는 숨겨져 있지 않음). |
추적됨 | 추적된 | 추적된 | 네. | macOS | 파일 수정 및 삭제 추적 |
제한된 | 제한된 | 제한된 | 아니요. | macOS | 파일은 System Integrity Protection으로 보호되며 확장된 특성 com.apple.rootless와 함께 제공됩니다. 플래그는 복구 모드에서 설정하거나 지워야 합니다. |
압축된 | 압축된 | 아니요. | macOS | 파일이 HFS 압축(읽기 전용 플래그)이며, APFS 형식의 볼륨에서는 사용할 수 없습니다. | |
데이터 볼트 | 아니요. | macOS | 특별한 권한이 없는 액세스를 금지하도록 코어 시스템에 의해 설정된 macOS Mojave 이후 숨겨진 개인 정보 플래그 | ||
오프라인 | 오프라인 | 오프라인, u-offline | 네. | FreeBSD | 파일이 오프라인 상태입니다. |
스냅샷 | 스냅샷 | 아니요. | FreeBSD, NetBSD | 파일이 스냅샷 파일(읽기 전용 플래그)입니다. | |
희소성 | 드문드문 | 드문드문한 | 네. | FreeBSD | 모든 0의 쓰기는 "구멍"으로 쓸 수 있습니다. |
보관해야 함 | 아치형의 | 우아크, 우아크아크 | 네. | FreeBSD | 파일을 보관해야 합니다. |
참고 항목
ATTRIB
– MS-DOS, OS/2 및 Microsoft Windows의 유사한 명령어chown
– 유닉스 시스템에서 파일/디렉토리 소유권 변경chmod
– 유닉스 시스템에서 파일 액세스 제어 특성 변경cacls
– Microsoft Windows NT에서 파일 액세스 제어 목록 변경
메모들
- ^ – OpenSolaris의 Illumos 및 OpenSolaris 사용자 명령 참조 매뉴얼 최신 Sun 기반
- ^ – OpenSolaris의 Illumos 및 OpenSolaris 사용자 명령 참조 매뉴얼 최신 Sun 기반
- ^ – OpenBSD 일반 명령 매뉴얼