xattr과 chattr의 차이점


9

관계와의 차이 무엇 xattrchattr? chattrLinux 에서 속성을 설정할 때 Linux 커널 및 inode 메타 데이터에서 일어나는 일 을 알고 싶습니다 .


내가 도움이 될 수있는 어제 관련된 질문에 긴 대답을 썼다 - unix.stackexchange.com/questions/118840/...을 . 이 attr명령은 XFS 파일 시스템 용이며, 해당 파일 시스템 독립 명령은setfattr
Graeme

답변:


13

Linux에서 lsattr/ chattr에 의해 처리되고 일부는 꽤 많은 파일 시스템 (ext2 / 3 / 4, reiserfs, JFS, OCFS2, btrfs, XFS, nilfs2, hfsplus ...)에 의해 저장 될 수 있으며 CIFS를 통해 조회 할 수있는 속성 / SMB (POSIX 확장자 사용시)는 플래그입니다. 불변 또는 아카이브 와 같은 속성을 비활성화 또는 활성화하기 위해 켜거나 끌 수있는 비트 만 있습니다 . 그것들이 저장되는 방법은 파일 시스템에 따라 다르지만 일반적으로 inode의 16/32/64 비트 레코드입니다.

플래그의 전체 목록은 Linux 기본 파일 시스템 (ext2 / 3 / 4, btrfs ...)에서 찾을 수 있지만 모든 플래그가 모든 FS에 적용되는 것은 아니며 다른 비원시 FS의 경우 Linux는 해당 플래그를 동등한 것으로 맵핑하려고 시도합니다. 해당 파일 시스템의 기능. 예를 들어, simmutable HFS + 파일 시스템에 OSX에 의해 저장된 플래그는 리눅스에서 해당 불변 플래그에 매핑됩니다 chattr. 어떤 파일 시스템이 지원하지 않는 플래그는 전혀 문서화되어 있지 않습니다. 종종 커널 소스 코드를 읽는 것이 유일한 옵션입니다.

반면 에 Linux에서 설정 setfattr하거나 attrLinux에서 설정 한 확장 속성은 플래그 이상을 저장합니다. 파일에도 첨부되며 임의의 바이트 배열 (키와 값 모두)이 될 수있는 키 / 값 쌍입니다 (일부 파일 시스템에서는 크기 제한이 있음).

키는 예를 들어 system.posix_acl_access또는 user.rsync.%stat입니다. system네임 스페이스 (당신과 함께 POSIX ACL을 변경하지 않을 시스템에 예약되어 setfattr있지만, 더 많은 것을 가진 setfaclPOSIX ACL을 그냥 파일 시스템에서 적어도 확장 된 속성으로 저장하는 일 등) 동안, user네임 스페이스는 응용 프로그램에서 사용할 수 여기 ( 수퍼 유저가 아닌 경우 소유권 또는 권한에 대한 정보를 저장 rsync하기 위해 해당 --fake-super옵션을 사용합니다 .

다시 말하지만, 파일 시스템에 따라 다릅니다. 자세한 내용은 WikiPedia를 참조하십시오 .


수행 lsattr/ chattr비에 대한 작업을 ext파일 시스템? 그렇지 않은 경우 extLinux 에서 비 시스템 의 플래그를 어떻게 변경 하시겠습니까? 또한 attrman 페이지는 XFS 용으로 작성되었다고 말합니다 (나에게 효과적이지만 ext4). 나는 실제로 어제 이것을 조사하는 데 오랜 시간을 보냈지 만 좋은 정보를 얻기가 어렵습니다. 다음을 참조하십시오 -unix.stackexchange.com/questions/118840/…
Graeme

@ Graeme, 그 질문에 대한 답변은 내 대답에 있습니다. lsattr/chattr파일 플래그 용입니다. 모든 플래그가 모든 파일 시스템에서 지원되는 것은 아닙니다. 예를 들어, 압축과 같은 일부 플래그는 ext4에서는 작동하지 않지만 btrfs에서는 작동합니다.
Stéphane Chazelas

당신이 관심이 있다면, 나는 몇 가지 파일 시스템 에서이 플래그를 테스트하고 위의 링크에 내 대답에 결과를 넣는 스크립트를 작성했습니다. 에 대한 설정 / 읽기를 성공하지 못했습니다 reiserfs.
Graeme

-1

모든이에 stroed 한 inode당신이 정말로 당신은 그것의 변경, 파일을 변경 .When inode당신은 좋은 명령을 가지고 .FOR 스크립트 :

stat --format=%a yourfile

다음 %variable에서 유용한 정보를 사용 하고 반환 할 수 있습니다.inode

그러나 당신의 대답 :

xattrMacOS 및 chattrLinux 상자에 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.