수다를 떨다

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 시스템(Chattrlsattr)

파일 시스템 지원

명령줄 도구 chattr(속성을 조작하기 위한) 및 lsattr(속성을 나열하기 위한)은 원래 Second Extended Filesystem 제품군(ext2, ext3, ext4)에 고유했으며 e2fsprogs 패키지의 일부로 사용할 수 있습니다.

그러나 이 기능은 이후 XFS, ReiserFS, JFSOCFS2를 포함한 많은 다른 시스템으로 전체 또는 부분적으로 확장되었습니다. 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 목록 내용을 나열하는 것이 아니라 다른 파일과 같은 디렉터리를 나열합니다.

특성

다음과 같은 몇 가지 특성이 있습니다.

Linux 파일 시스템의 파일 속성에 따라 chattr(1) 리눅스 맨 페이지
기여하다 lsattr 플래그 채트 옵션 의미론 및 이론적 근거
아니요. atime 업데이트 A +A 설정하다
-A 치우다
  • 와 함께 파일이 있는 경우 A 속성 집합에 액세스하고 시간 레코드는 수정되지 않습니다.
  • 이를 통해 일정량의 디스크 I/O 작업을 피할 수 있습니다.
추가만 a +a 설정하다
-a 치우다[note 1]
  • 그 파일은 다음과 같습니다. a 속성 집합은 쓰기를 위해 추가 모드에서만 열 수 있습니다.
압축된 c +c 설정하다
-c 치우다[note 2]
  • 그 파일은 다음과 같습니다. c 속성 집합은 커널에 의해 디스크에서 자동으로 압축됩니다.
  • 이 파일의 읽기는 압축되지 않은 데이터를 반환합니다.
  • 이 파일에 쓰기는 데이터를 디스크에 저장하기 전에 데이터를 압축합니다.
Copy-on-Write(CoW) 없음 C +C 설정하다
-C 치우다[note 3]
  • 그 파일은 다음과 같습니다. C 속성은 Copy-on-Write 업데이트의 대상이 되지 않습니다.
  • 이러한 파일에 대한 업데이트는 원자 스냅샷의 영향을 받지 않을 수 있으며 일부 파일 시스템 및 커널에 대한 일부 신뢰성 정보가 부족할 수 있습니다.
동기화된 디렉토리 업데이트 D +D 설정하다
-D 치우다
  • 로 디렉토리를 작성하는 경우 D 속성 집합이 수정되고 변경 사항이 디스크에 동기식으로 기록됩니다.
  • 이는 다음과 같습니다. dirsync mount 옵션, 파일의 하위 집합에 적용됩니다.
덤프 없음 d +d 설정하다
-d 치우다
  • 그 파일은 다음과 같습니다. d 덤프 프로그램이 실행될 때 속성 집합이 백업 후보가 아닙니다.
압축 오류 E (unav가능)
  • E 실험 압축 패치는 압축 파일에 압축 오류가 있음을 나타내기 위해 속성을 사용합니다.
익스텐트 형식 e (unav가능)
  • e 속성은 파일이 디스크의 블록을 매핑하는 데 익스텐트를 사용하고 있음을 나타냅니다.
거대한 파일 h (unav가능)
  • h 속성은 파일이 섹터 단위가 아닌 파일 시스템 블록 크기 단위로 블록을 저장하고 있음을 나타냅니다.
  • 파일이 2TB보다 크거나 한 번에 2TB보다 컸다는 뜻입니다.
색인화된 디렉토리 I (unav가능)
  • I 속성은 htree 프로그램 코드에서 해시된 트리를 사용하여 디렉터리의 색인을 만들고 있음을 나타내는 데 사용됩니다.
불변의 i +i 설정하다
-i 치우다[note 1]
  • 그 파일은 다음과 같습니다. i 속성을 수정할 수 없습니다.
  • 삭제하거나 이름을 바꿀 수 없으며 이 파일에 대한 링크를 만들 수 없으며 파일에 데이터를 쓸 수 없습니다.
  • 설정하면 슈퍼유저라도 파일의 내용을 지우거나 변경할 수 없도록 합니다.
데이터 저널링 j +j 설정하다
-j 치우다[note 4]
  • 그 파일은 다음과 같습니다. j 파일 시스템이 다음과 같이 마운트된 경우 파일 자체에 쓰기 전에 모든 데이터가 ext3 저널에 기록됩니다. "data=ordered" 또는 "data=writeback" 옵션들.
  • 파일 시스템이 다음과 같이 장착된 경우 "data=journal" option 모든 파일 데이터가 이미 저널링되어 있으므로 이 속성은 영향을 미치지 않습니다.
보안 삭제 s +s 설정하다
-s 치우다[note 2][note 5]
  • 와 함께 파일이 있는 경우 s 속성 집합이 삭제되고 블록이 영점화되어 디스크에 다시 기록됩니다.
동기식 업데이트 S +S 설정하다
-S 치우다
  • 와 함께 파일이 있는 경우 S 속성 집합이 수정되고 변경 사항이 디스크에 동기식으로 기록됩니다. 이는 파일의 하위 집합에 적용되는 'sync' 마운트 옵션과 동일합니다.
  • 이는 다음과 같습니다. sync mount 옵션, 파일의 하위 집합에 적용됩니다.
최상위 디렉터리 계층 T +T 설정하다
-T 치우다
  • 전화번호부가 있는 전화번호부. T 속성은 Orlov 블록 할당기의 목적을 위해 디렉터리 계층의 최상위로 간주됩니다.
  • 이는 ext3ext4에서 사용하는 블록 할당기에 대한 힌트로, 이 디렉터리 아래의 하위 디렉터리는 관련이 없으므로 할당 목적으로 분산해야 합니다.
  • 예를 들어, 다음과 같이 설정하는 것은 매우 좋은 생각입니다. T 의 탓으로 돌리다 /home 디렉토리, 그래서. /home/john 그리고. /home/mary 는 별도의 블록 그룹으로 배치됩니다.
  • 이 특성이 설정되지 않은 디렉토리의 경우, Olov 블록 할당자는 가능한 한 하위 디렉토리를 더 가깝게 그룹화하려고 합니다.
꼬리 병합 불가 t +t 설정하다
-t 치우다
  • 테일 병합을 지원하는 파일 시스템의 경우 다음과 같은 파일이 포함됩니다. t 속성은 파일 끝에 부분 블록 조각이 다른 파일과 병합되지 않습니다.
  • 이는 파일 시스템을 직접 읽고 테일 병합 파일을 이해하지 못하는 LILO와 같은 응용 프로그램에 필요합니다.
삭제 불가 u +u 설정하다
-u 치우다[note 2]
  • 와 함께 파일이 있는 경우 u 속성 집합이 삭제되고 해당 내용이 저장됩니다.
  • 이를 통해 사용자는 삭제를 요청할 수 있습니다.
압축 원시 액세스 X (unav가능)
  • X 속성은 압축 파일의 원시 콘텐츠에 직접 액세스할 수 있음을 나타내는 데 실험 압축 패치에서 사용됩니다.
압축된 더티 파일 Z (unav가능)
  • Z Attribute는 압축 파일이 "dirty"임을 나타내기 위해 실험 압축 패치에 의해 사용됩니다.
버전/세대번호 -v -v version
  • 파일의 버전/세대 번호입니다.

메모들

  1. ^ a b 슈퍼유저나 프로세스 중에 다음과 같은 것이 있습니다. CAP_LINUX_IMMUTABLE capability는 이러한 속성을 설정하거나 지울 수 있습니다.
  2. ^ a b c 이러한 속성은 현재 메인라인 리눅스 커널에서 구현된 것처럼 ext2ext3 파일 시스템에서는 보장되지 않습니다.
  3. ^ 이러한 속성은 btrf와 같은 Copy-on-Write 파일 시스템에만 적용됩니다.
  4. ^ 슈퍼유저나 프로세스 중에 다음과 같은 것이 있습니다. CAP_SYS_RESOURCE capability 는 이 속성을 설정하거나 지울 수 있습니다.
  5. ^ 속성은 버그 #17872에 보고된 바와 같이 현재 메인라인 리눅스 커널에서 구현된 것처럼 ext4 파일 시스템에서는 보장되지 않습니다.

BSD 유사 시스템(chflags)에서

파일 시스템 지원

chflags 명령은 특정 파일 시스템에만 해당되지 않습니다. BSD 시스템의 UFS와 macOS의 APFS, HFS+, SMB, AFPFAT는 적어도 일부 플래그를 지원합니다.

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에서 파일 액세스 제어 목록 변경

메모들

  1. ^ chmod(1) 최신 Sun 기반 OpenSolarisIllumosOpenSolaris 사용자 명령 참조 매뉴얼
  2. ^ ls(1) 최신 Sun 기반 OpenSolarisIllumosOpenSolaris 사용자 명령 참조 매뉴얼
  3. ^ chflags(1) OpenBSD 일반 명령 매뉴얼

참고문헌