GNU tar는 Linux에서 "chattr +i"로 설정된 파일 불변 속성을 어떻게 보존합니까?

GNU tar는 Linux에서 "chattr +i"로 설정된 파일 불변 속성을 어떻게 보존합니까?

Linux에서 "chattr +i"로 설정된 불변 속성이 있는 파일을 백업하기 위해 tar(GNU tar 1.30)를 사용하고 싶습니다. 명령줄은 다음과 같습니다.

mdx@e5450:~$ touch test.txt
mdx@e5450:~$ sudo chattr +i test.txt
mdx@e5450:~$ lsattr test.txt
----i---------e---- test.txt
mdx@e5450:~$ sudo tar --acls --selinux --xattrs --xattrs-include='*' -cpvvzf test.tar.gz test.txt
-rw-r--r--  mdx/mdx           0 2024-03-01 16:30 test.txt
mdx@e5450:~$ mkdir test
mdx@e5450:~$ sudo tar --acls --selinux --xattrs --xattrs-include='*' -xpvvzf test.tar.gz -C test
-rw-r--r--  mdx/mdx           0 2024-03-01 16:30 test.txt
mdx@e5450:~$ lsattr test/test.txt
--------------e---- test/test.txt
mdx@e5450:~$

압축을 푼 후에는 불변 속성이 사라졌습니다.

bsdtar 3.3.3을 사용하여 test.txt를 보관할 수 있으며 불변 속성이 보존됩니다. 세부사항은 다음과 같습니다:

mdx@e5450:~$ sudo bsdtar -cvvzf test.btar.gz test.txt
a -rw-r--r--  1 mdx    mdx         0 Mar  1 16:30 test.txt
mdx@e5450:~$ mkdir btest
mdx@e5450:~$ sudo bsdtar -xvvzf test.btar.gz -C btest
x -rw-r--r--  0 mdx    mdx         0 Mar  1 16:30 test.txt
mdx@e5450:~$ lsattr btest/test.txt
----i---------e---- btest/test.txt

Linux에서 GNU tar를 사용할 때 "chattr +i"로 설정된 파일 불변 속성을 보존할 수 있습니까?

답변1

나는 당신이 GNU tar의 단점을 발견했다고 생각합니다. 하지만 상황은 당신이 생각하는 것과 다릅니다!

"i"는 Linux 파일 시스템 용어로 "속성"이라고 합니다. 이제 올바르게 저장하고 복원했습니다.확장된 속성, 매우 늦게 추가되었지만 구식은 아닙니다.속성.

불행하게도 GNU tar에는 이러한 작업을 강제하는 명령줄 옵션이 없으며 일관되게 처리하지 못하는 것 같습니다. bsdtar가 올바르게 실행된다는 사실은 버그나 기능적 결함을 암시합니다. 나는 GNU tar 소스 코드에서 그것을 빨리 찾을 수 없기 때문에 전혀 구현되지 않았을 것이라고 확신합니다 ioctl. FS_IMMUTABLE_FL너무 많이 추가하면 안 됩니다. 의도적인 것인지 메일링 리스트에 이메일을 보내 문의해 주세요!

관련 정보