xattr과 chattr의 차이점 차이 무엇

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



답변

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를 참조하십시오 .


답변

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

stat --format=%a yourfile

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

그러나 당신의 대답 :

xattrMacOS 및 chattrLinux 상자에 있습니다.