확장 파일 속성

Extended file attributes

확장 파일 속성은 파일시스템에 의해 해석되지 않는 메타데이터와 컴퓨터 파일을 관련지을 수 있는 파일시스템 기능입니다.일반 속성은 파일시스템에 의해 엄격하게 정의된 목적(작성 및 수정 시간 권한 또는 기록 등)을 가지고 있습니다.일반적으로 최대 파일 크기만큼 커질 수 있는 포크와 달리 확장 속성은 일반적으로 최대 파일 크기보다 훨씬 작은 값으로 크기가 제한됩니다.일반적인 용도에는 문서 작성자, 일반 텍스트 문서의 문자 인코딩 또는 체크섬, 암호화 해시 또는 디지털 인증서임의 액세스 제어 정보가 포함됩니다.

Unix 계열 시스템에서는 확장 속성은 보통 xatr[1]단축됩니다.

실장

AIX

AIX에서 JFS2 v2 파일 시스템은 확장 속성을 지원하며 확장 속성은 getea [2]명령어getea,[3] setea,[4] listea,[5][6] statearemoveea[7] API는 확장 속성 가져오기, 설정, 목록 표시, 정보 가져오기 및 삭제를 지원합니다.

BeOS/하이쿠

지금은 없어진 BeOS나 하이쿠와 같은 후계 프로그램에서는 확장 파일 속성이 기본 프로그램이나 서드파티 프로그램에서 널리 사용되고 있습니다.Be File System을 사용하면 속성을 인덱싱 및 쿼리할 수 있으며, 기본적으로 파일 시스템 데이터베이스와 같은 특성을 제공합니다.Be-like 시스템에서 확장 속성의 용도는 다양합니다.예를 들어 Tracker와 OpenTracker각각 BeOS와 Haiku의 파일 관리자이며,[8] Haiku의 "메일" 서비스는 모든 메시지 내용 및 메타데이터를 확장 파일 [9]속성에 저장하며, MIME 유형의 파일은 속성에 저장됩니다.확장 파일 속성은 파일 관리자(종종 Tracker 또는 그 파생 모델)를 통해 Be-like 시스템의 GUI에서 보고 편집할 수 있습니다.

FreeBSD

FreeBSD 5.0 이후에서는 시스템콜extattr_[10] 패밀리를 사용하여 UFS1, UFS2 및 ZFS 파일시스템이 확장 속성을 지원합니다.일반 파일에는 확장 속성 목록이 있을 수 있습니다.각 속성은 이름과 관련 데이터로 구성됩니다.이름은 null로 끝나는 문자열이어야 하며 작은 정수 네임스페이스 식별자로 식별되는 네임스페이스에 존재합니다.현재 사용자와 시스템의 두 가지 네임스페이스가 존재합니다.사용자 이름 공간에는 이름 또는 내용과 관련된 제한이 없습니다.시스템 네임스페이스는 주로 커널에 의해 접근컨트롤 목록 및 필수 접근컨트롤사용됩니다.

리눅스

Linux경우 ext2, ext3, ext4, JFS, Squashfs, UBIFS, Yaffs2, ReiserFS, Reiser4, XFS, Btrfs, OrangeFS, Lustre, OCFS2 1.6, ZFS 및 F2FS[11] 시스템 확장 속성 지원(축소)일반 파일 또는 디렉토리는 이름과 관련 데이터로 구성된 확장 속성을 가질 수 있습니다.이름은 네임스페이스 식별자와 도트 문자가 앞에 붙는 null 종단 문자열이어야 합니다.현재 네임스페이스는 사용자, 신뢰할 수 있는 이름공간, 보안공간 및 시스템 네임스페이스가 있습니다.사용자 이름 공간에는 이름 또는 내용과 관련된 제한이 없습니다.시스템 네임스페이스는 주로 커널에 의해 접근컨트롤 리스트에 사용됩니다.예를 들어 보안 네임스페이스는 SELinux에서 사용됩니다.

1997년에 철회된 POSIX.1e[citation needed] 드래프트에서 확장된 속성 개념을 지원하는 것은 [12][13]2002년경 Linux에 추가되었습니다.2016년 현재, 그것들은 아직 사용자 공간 리눅스 프로그램에 의해 널리 사용되고 있지는 않지만, 비글, 오픈스택 스위프트, 드롭박스, KDE의 시맨틱 메타데이터 프레임워크(Baloo), 크로미움, Wget, cURL에서 사용되고 있다.

Linux 커널에서는 XFSReiserFS와 마찬가지로 최대 255바이트의 이름과 최대 64KiB의 [14]값을 사용할 수 있지만 ext2/3/4 및 btrfs에서는 한 파일의 모든 속성(이름과 값)이 하나의 "파일 시스템 블록"(일반적으로 4KiB)에 적합해야 합니다.POSIX.1e에 [citation needed]따라 이름은 보안, 시스템, 신뢰할 수 있는 사용자 및 마침표 중 하나로 시작해야 합니다.확장 애트리뷰트의 [15]네임스페이스를 정의합니다.

확장 Atribute에 액세스하여 변경할 수 있습니다.getfattr그리고.setfattr명령어attr패키지가 [16]포함되어 있습니다.API를 호출합니다.getxattr그리고.setxattr.

MacOS

Mac OS X 10.4 이후에서는 이름 있는 포크를 허용하는 HFS+ 파일 시스템 속성 파일 B* 트리 기능을 사용하여 확장 속성을 지원합니다.HFS+의 이름 있는 포크는 익스텐트를 통해 임의로 대량의 데이터를 지원하지만 확장 속성에 대한 OS 지원은 인라인 속성만 지원하므로 단일 B*트리 [citation needed]노드에 들어갈 수 있는 크기로 제한됩니다.일반 파일에는 확장 속성 목록이 있을 수 있습니다.HFS+는 임의의 수의 이름 있는 포크를 지원하며, macOS가 확장 속성의 수에 제한을 가하는지는 알 수 없습니다.

각 속성은 이름과 관련 데이터로 구성됩니다.이름은 늘 의 Unicode 문자열입니다.네임스페이스 제한은 없으며(이것을 오픈 xatr 시스템으로 한다), 규칙에서는 역 DNS 문자열(Uniform Type Identifier와 유사)을 속성명으로 사용합니다.

macOS는 Linux와 유사한 API를 사용하여 파일 또는 디렉토리에서 확장 속성을 나열,[17] 가져오기,[18] 설정 [19]및 제거할[20] 수 있습니다.이러한 기능은 명령줄에서 xattr [21]유틸리티를 통해 공개됩니다.

macOS 10.5 이후 웹에서 발신된 파일은 다음과 같이 표시됩니다.com.apple.quarantine확장 파일 [22]속성을 통해.MacOS의 일부 이전 버전(예: Mac OS X 10.6)에서는 일반적인 코코아 애플리케이션(TextEdit, Preview 등)[citation needed]에서는 사용자 공간 확장 속성이 저장되지 않았습니다.

오픈BSD

확장 파일 속성에 대한 지원이 OpenB에서 제거되었습니다.액세스 컨트롤 [23]리스트에 관심이 없기 때문에, 2005년에 SD 소스 코드가 공개되었습니다.

OS/2

OS/2 버전 1.2 이후에서는 확장 속성을 염두에 두고 고성능 파일 시스템이 설계되었지만 DOS의 FAT 파일 시스템에도 지원 기능이 추가되었습니다.FAT 파티션을 사용하는 다른 운영체제와의 호환성을 위해 OS/2 속성은 1개의 파일에 저장됩니다.EA DATA. SFroot 디렉토리에 있습니다.확장 속성을 지원하는 운영 체제가 디스크를 관리하는 경우 일반적으로 이 파일에 액세스할 수 없지만, 예를 들어 DOS에서 자유롭게 조작할 수 있습니다. 확장 속성을 가진 파일 및 디렉터리는 이 파일 내에 하나 이상의 클러스터를 사용합니다.처음 사용된 클러스터의 논리적 클러스터 번호는 소유 파일 또는 디렉토리의 디렉토리 [24]항목에 저장됩니다.이들 2바이트는 FAT32 파일시스템에서 다른 목적으로 사용되므로 OS/2 확장 속성은 이 파일시스템에 저장할 수 없습니다.

Workplace Shell과 같은 OS/2 버전 2.0 이후의 일부에서는 파일에 대한 파일 형식, 주석, 컴퓨터 아이콘 및 키워드 식별과 같은 목적으로 몇 가지 표준화된 확장 속성(EA라고도 함)을 사용합니다.인터프리터 언어인 Rexx 로 작성된 프로그램은, 보다 빠른 실행을 가능하게 하기 위해서, 이미 해석된 버전의 코드를 확장 어트리뷰트로 보존합니다.

솔라리스

Solaris 버전9 이후 파일에는 실제로는 포크인 확장 속성을 설정할 수 있습니다.확장 속성의 최대 크기는 파일의 최대 크기와 같으며 파일과 같은 방식으로 읽고 쓸 수 있습니다.내부적으로는 일반 파일처럼 저장 및 액세스되므로 이름에 "/" 문자를[25] 포함할 수 없으며 소유권과 권한은 상위 파일의 이름과 다를 수 있습니다.

네트워크 파일시스템 버전4는 Solaris와 거의 같은 방법으로 확장 속성을 지원합니다.

윈도 NT

윈도우즈 NT에서는 제한된 길이의 확장 [24]특성이 FAT, HPFS 및 NTFS에서 지원됩니다.이것은 OS/2 서브시스템의 일부로서 실장되었습니다.특히 Unix와 같은 권한을 구현하기 위해 Interix POSIX 하위 시스템의 NFS 서버에서 사용됩니다.Windows 10 Anniversary Update 에 추가된 Linux 용 Windows 서브시스템도 동일한 목적으로 Linux 파일모드, 소유자, 디바이스 ID(해당하는 경우) 및 파일 시간을 확장 [26]속성에 저장합니다.

또한 NTFS는 리소스 포크의 일종인 대체 데이터 스트림(ADS) 형식으로 임의 길이 확장 속성을 저장할 수 있습니다.NTFS Descriptions 나 QuickSearch eXtended같은 파일 매니저용 플러그인은 [27][28]ADS 와 FUSE 의 확장 속성의 매핑을 서포트하고 있습니다.또한 파일 속성을 [29]매핑할 수도 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ xattr(7)Linux 프로그래머 매뉴얼– 개요, 표기법 및 Miscellanea
  2. ^ "getea Command". IBM AIX V7.2 documentation. IBM. Retrieved 2017-07-11.
  3. ^ "getea Subroutine". IBM AIX V7.2 documentation: Base Operating System and Extensions, Volume 1. IBM. Retrieved 2017-07-11.
  4. ^ "setea Subroutine". IBM AIX V7.2 documentation: Base Operating System and Extensions, Volume 2. IBM. Retrieved 2017-07-11.
  5. ^ "listea Subroutine". IBM AIX V7.2 documentation: Base Operating System and Extensions, Volume 1. IBM. Retrieved 2017-07-11.
  6. ^ "statea Subroutine". IBM AIX V7.2 documentation: Base Operating System and Extensions, Volume 2. IBM. Retrieved 2017-07-11.
  7. ^ "removeea Subroutine". IBM AIX V7.2 documentation: Base Operating System and Extensions, Volume 2. IBM. Retrieved 2017-07-11.
  8. ^ "Attributes". Haiku User Guide. Haiku, Inc. Retrieved 28 January 2021.
  9. ^ "Workshop: Managing Emails". Haiku User Guide. Haiku, Inc. Retrieved 28 January 2021.
  10. ^ extattr(2)FreeBSD 시스템 콜 매뉴얼
  11. ^ Kim, Jaegeuk (2012-10-05). "[PATCH 13/16] f2fs: add xattr and acl functionalities". Retrieved 2017-07-11.
  12. ^ "v2.5.3 git commit log". 2002-02-05. Retrieved 2017-07-11.
  13. ^ "Red Hat Enterprise Linux AS 3 Release Notes (x86 Edition)". Red Hat. 2003. Archived from the original on 2015-12-21. Retrieved 2017-07-11. EA (Extended Attributes) and ACL (Access Control Lists) functionality is now available for ext3 file systems. In addition, ACL functionality is available for NFS.
  14. ^ "linux/include/uapi/linux/limits.h". 2012-10-13. Retrieved 2017-07-11.
  15. ^ xattr(7)Linux 프로그래머 매뉴얼– 개요, 표기법 및 Miscellanea
  16. ^ "Commands for Manipulating Filesystem Extended Attributes". GNU Savannah. Retrieved 2017-07-11.
  17. ^ listxattr(2)DarwinMacOS 시스템 문의 매뉴얼
  18. ^ getxattr(2)DarwinMacOS 시스템 문의 매뉴얼
  19. ^ setxattr(2)DarwinMacOS 시스템 문의 매뉴얼
  20. ^ removexattr(2)DarwinMacOS 시스템 문의 매뉴얼
  21. ^ xattr(1)DarwinmacOS 일반 명령어 매뉴얼
  22. ^ "Launch Services Release Notes". developer.apple.com.
  23. ^ Dale Rahn (2005-07-03). "CVS log for src/sys/ufs/ufs/Attic/extattr.h".
  24. ^ a b Eager, Bob (2000-10-28). "Implementation of extended attributes on the FAT file system". Retrieved 2017-07-11.
  25. ^ fsattr(5)Solaris 10 표준, 환경 및 매크로 레퍼런스 매뉴얼
  26. ^ Hammons, Jack (2016-06-15). "WSL File System Support". MSDN. Retrieved 2017-07-11.
  27. ^ "NTFS Descriptions 1.2.1". TotalCmd.net. Retrieved 16 April 2018.
  28. ^ "QuickSearch eXtended". TotalCmd.net. Retrieved 16 April 2018.
  29. ^ "Extended Attributes". Tuxera.