Hi,
The following are the first few drafts of the "Archiving Files with
tar/star" sections. Any comments and corrections are appreciated.
Thanks.
Archiving Files with tar
tar does not retain extended attributes by default. Since SELinux
contexts are stored in extended attributes, contexts can be lost when
archiving files. Use tar --selinux to create archives that retain contexts.
The following example demonstrates creating a Tar archive that retains
SELinux contexts:
1. As the Linux root user, run the touch /var/www/html/file{1,2,3}
command to create three files (file1, file2, and file3). These files
inherit the httpd_sys_content_t type from the /var/www/html/ directory:
[example output from ls -Z /var/www/html/]
2. Run the cd /var/www/html/ command to change into the /var/www/html/
directory. Once in this directory, as the Linux root user, run the tar
--selinux -cf test.tar file{1,2,3} command to create a Tar archive named
test.tar.
3. As the Linux root user, run the mkdir /test command to create a new
directory, and then, run the chmod 777 /test/ command to allow all users
full-access to the /test/ directory.
# I don't know if this is a bad idea. I thought it would prevent running
all steps as root (I used /var/www/html/ to 'simulate' real world,
instead of using home directory).
4. Run the cp /var/www/html/test.tar /test/ command to copy the test.tar
file in to the /test/ directory.
5. Run the cd /test/ command to change into the /test/ directory. Once
in this directory, run the tar -xf test.tar command to extract the Tar
archive.
6. Run the ls -lZ /test/ command to view the SELinux contexts. The
httpd_sys_content_t type has been retained, rather than being changed to
default_t, which would have happened had the --selinux not been used:
[example output from ls -Z /test/]
7. If the /test/ directory is no longer required, as the Linux root
user, run the rm -ri /test/ command to remove it, as well as all files
in it.
Refer to the tar(1) manual page for further information about tar, such
as the --xattrs option that retains all extended attributes.
The following section is the same example, but uses "star -xattr
-H=exustar" instead of tar --selinux.
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with
the words "unsubscribe selinux" without quotes as the message.