관계와의 차이 무엇 xattr
과 chattr
? chattr
Linux 에서 속성을 설정할 때 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
하거나 attr
Linux에서 설정 한 확장 속성은 플래그 이상을 저장합니다. 파일에도 첨부되며 임의의 바이트 배열 (키와 값 모두)이 될 수있는 키 / 값 쌍입니다 (일부 파일 시스템에서는 크기 제한이 있음).
키는 예를 들어 system.posix_acl_access
또는 user.rsync.%stat
입니다. system
네임 스페이스 (당신과 함께 POSIX ACL을 변경하지 않을 시스템에 예약되어 setfattr
있지만, 더 많은 것을 가진 setfacl
POSIX ACL을 그냥 파일 시스템에서 적어도 확장 된 속성으로 저장하는 일 등) 동안, user
네임 스페이스는 응용 프로그램에서 사용할 수 여기 ( 수퍼 유저가 아닌 경우 소유권 또는 권한에 대한 정보를 저장 rsync
하기 위해 해당 --fake-super
옵션을 사용합니다 .
다시 말하지만, 파일 시스템에 따라 다릅니다. 자세한 내용은 WikiPedia를 참조하십시오 .
답변
모든이에 stroed 한 inode
당신이 정말로 당신은 그것의 변경, 파일을 변경 .When inode
당신은 좋은 명령을 가지고 .FOR 스크립트 :
stat --format=%a yourfile
다음 %variable
에서 유용한 정보를 사용 하고 반환 할 수 있습니다.inode
그러나 당신의 대답 :
xattr
MacOS 및 chattr
Linux 상자에 있습니다.