= 설명 =
확장 속성(이하 EA)은 이름:값 쌍으로 이루어지며, 파일과 디렉터리와 연관되는 기본 속성을 확장시킨 것이다.
EA는 파일 시스템 상에서 ACLs와 같은 추가 기능의 제공에도 사용된다. EA의 접근은 원자적 개체로서 이루어지는데, 읽기는 속성의 전체 값을 검색하여 버퍼에 저장하고, 쓰기는 새 값으로 이전 값들을 대체한다.
EA를 위해 사용되는 공간은 파일 소유자 및 그룹의 디스크 할당량으로 계산된다.
현재 지원되는 파일 시스템은 ext2, ext3, ext4, XFS, JFS, reiserfs가 있다.
현재 지원되는 파일 시스템은 ext2, ext3, ext4, XFS, JFS, reiserfs가 있다.
= 확장 속성 네임스페이스 =
속성의 이름은 0으로 끝나는 문자열이고, 항상 정규화 네임스페이스 안에서 정의된다.
몇몇 정규화된 네임스페이스의 예 : user.mime_type, trusted.md5sum, system.posix_acl_access, security.selinux
== 확장 보안 속성 ==
보안 속성 네임스페이스는 커널 보안 모듈에 의해 사용되며, 보안 속성을 읽고 쓰는 권한은 보안 모듈에 의해 제공되는 정책을 따른다.
보안 모듈이 로드되지 않았을 때, 모든 프로세스는 확장 보안 속성의 읽기 권한을 갖고, CAP_SYS_ADMIN을 갖는 프로세스로 쓰기 권한을 제한한다.
== 확장 시스템 속성 ==
확장 시스템 속성은 커널이 ACLs와 같은 시스템 개체를 저장하기 위해 사용한다.
== 신뢰 사용자 속성 ==
이 속성은 CAP_SYS_ADMIN을 갖는 프로세스에서만 접근 및 열람이 가능하다.
이 클래스 내의 속성은 유저 스페이스 메커니즘에 사용되며, EA 안에 세부 정보가 저장이 되고, 일반 프로세스는 액세스할 수 없다.
== 확장 사용자 속성 ==
이 속성은 디렉터리나 파일의 문자 집합, 인코딩이나 MIME 유형과 같은 임의의 추가적 정보를 저장하기 위해 사용된다.
사용자 속성에 대한 액세스 권한은 파일 퍼미션 비트에 의해 정의된다.
일반 파일이나 디렉터리의 퍼미션 비트는 특별 파일과 심볼릭 링크의 퍼미션 비트와는 다르게 해석된다.
일반적인 파일과 디렉터리에 대한 퍼미션 비트는 파일의 내용에 대한 액세스를 의미하고, 장치 특별 파일(디바이스 파일)의 경우엔 장치 자체에 대한 액세스를 의미한다.
예외적으로 심볼릭 링크의 퍼미션은 액세스 검사에 사용이 되지 않는다.
= 파일시스템에 따른 차이 =
ext2/3, reiserfs와 같은 파일시스템에서는 EA를 위해 user_xattr 마운트 옵션이 필요하다.
커널과 파일시스템은 파일에 연관된 EA의 크기와 개수의 한게치를 조절할 수 있다.
커널과 파일시스템은 파일에 연관된 EA의 크기와 개수의 한게치를 조절할 수 있다.
ext2/3/4 파일시스템 제공에선 각 EA가 반드시 단일 파일시스템 블럭 크기에 들어가야 한다.
XFS, reiserfs 파일시스템 제공에선 EA의 크기나 개수의 실질적인 한계가 없다. 그리고 디스크에 EA 정보를 저장하기 위해 사용되는 알고리즘 또한 확장이 가능하다.
JFS 파일시스템 제공에선 속성의 이름은 255바이트, 값은 65,535바이트까지 가능하다.
attr - Extended Attributes