4.10.4. tar명령을 사용하여 파일 보관
tar
유틸리티는 기본적으로 확장 속성을 유지하지 않습니다. SELinux 컨텍스트는 확장된 특성에 저장되므로 파일을 보관할 때 컨텍스트가 손실될 수 있습니다. tar --selinux 명령을 사용하여 컨텍스트를 유지하고 아카이브에서 파일을 복원하는 아카이브를 만듭니다. tar
아카이브에 확장 속성이 없는 파일이 있거나 확장된 속성을 시스템 기본값과 일치시키려면 restorecon
유틸리티를 사용하십시오.
~]$
tar -xvf archive.tar | restorecon -f -
디렉터리에 따라
restorecon
을 실행하려면 root 사용자여야 할 수 있습니다.
다음 예제에서는 SELinux 컨텍스트를 유지하는
tar
아카이브를 생성하는 방법을 보여줍니다.
절차 4.17. tar 아카이브 만들기
/var/www/html/
디렉토리로 변경하고 SELinux 컨텍스트를 확인합니다.~]$
cd /var/www/html/html]$
ls -dZ /var/www/html/ drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 .- 루트로
/var/www/html/
에 3개의 파일(
3)을 만듭니다. 이러한 파일은file1
, file2
및 file/var/www/html/
:에서httpd_sys_content_t
유형을 상속받습니다.html]#
touch file{1,2,3}html]$
ls -Z /var/www/html/ -rw-r--r-- root root unconfined_u:object_r:httpd_sys_content_t:s0 file1 -rw-r--r-- root root unconfined_u:object_r:httpd_sys_content_t:s0 file2 -rw-r--r-- root root unconfined_u:object_r:httpd_sys_content_t:s0 file3 - 루트로 다음 명령을 입력하여
test.tar
이라는tar
아카이브를 만듭니다. SELinux 컨텍스트를 유지하려면--selinux
를 사용합니다.html]#
tar --selinux -cf test.tar file{1,2,3} - root로
test/
라는 새 디렉터리를 생성한 다음 모든 사용자에게 전체 액세스 권한을 허용합니다.~]#
mkdir /test~]#
chmod 777 /test/ test.tar
파일을test/
:에 복사합니다.~]$
cp /var/www/html/test.tar /test/test/
디렉터리로 변경합니다. 이 디렉토리에 다음 명령을 입력하여tar
아카이브를 추출합니다. SELinux 옵션을다시
지정하면 SELinux 컨텍스트가default_t
로 변경됩니다.~]$
cd /test/test]$
tar --selinux -xvf test.tar- SELinux 컨텍스트 보기.
httpd_sys_content_t
유형이default_t
로 변경되지 않고--selinux
가 사용되지 않았습니다.test]$
ls -lZ /test/ -rw-r--r-- user1 group1 unconfined_u:object_r:httpd_sys_content_t:s0 file1 -rw-r--r-- user1 group1 unconfined_u:object_r:httpd_sys_content_t:s0 file2 -rw-r--r-- user1 group1 unconfined_u:object_r:httpd_sys_content_t:s0 file3 -rw-r--r-- user1 group1 unconfined_u:object_r:default_t:s0 test.tar test/
디렉터리가 더 이상 필요하지 않은 경우 root로 다음 명령을 입력하여 제거하고 이 디렉터리의 모든 파일을 제거합니다.~]#
rm -ri /test/
모든 확장 속성을 유지하는
--xattrs
옵션과 같이 tar
에 대한 자세한 내용은 tar(1) 매뉴얼 페이지를 참조하십시오.