Copying files without losing selinux context
Suvayu Ali
fatkasuvayu+linux at gmail.com
Sat Oct 10 09:07:40 UTC 2015
Hi Rejy,
On Sat, Oct 10, 2015 at 12:31:59PM +0530, Rejy M Cyriac wrote:
> On 10/08/2015 06:35 PM, Suvayu Ali wrote:
> >
> > Yesterday I installed a new SSD in my laptop. I moved all my files
> > (/home, /var, /opt) with rsync and rebooted. However I see the selinux
> > filecontexts are wrong, and many services are failing because of that,
> > e.g. the user crontab doesn't load.
> >
> > # ls -Z /var/spool/cron/user
> > unconfined_u:object_r:var_spool_t:s0 /var/spool/cron/user
> >
> > I did an autorelabel on boot, I also ran `restorecon -p -r /var',
> > neither helped. To get the crontab working, I had to change the context
> > by hand.
> >
> > # chcon --reference=/old/part/spool/cron/user /var/spool/cron/user
> > # ls -Z /var/spool/cron/user
> > unconfined_u:object_r:user_cron_spool_t:s0 /var/spool/cron/user
> >
> > I would like to know how I can fix the rest, and what I should have used
> > to do the copy in the first place. I guess `cp -c' would work, but then
> > I wouldn't have the ability to resume the transfer.
>
> The following would have retained the SELinux contexts
>
> rsync with the --xattrs option
> tar with the --selinux or --xattrs option
Thanks a lot! I'll remember this for the future. Is there any simple
way to restore the contexts now, after the fact? If not, maybe
something like the command below?
# cd /old && find . -exec chcon --reference=\{\} /var/\{\} \;
Cheers,
--
Suvayu
Open source is the future. It sets us free.
More information about the users
mailing list