Problems moving my jails (mv: Operation not permitted)

Ian Smith smithi at nimnet.asn.au
Sun Oct 5 05:31:49 UTC 2008


On Sat, 4 Oct 2008, Redd Vinylene wrote:
 > On Sat, Oct 4, 2008 at 9:22 PM, George Hartzell <hartzell at alerce.com> wrote:
 > > Redd Vinylene writes:
 > >  > On Sat, Oct 4, 2008 at 9:02 PM, George Hartzell <hartzell at alerce.com> wrote:
 > >  > >
 > >  > > If you do an ls -lo /home/jail/box/usr/bin/chpass, you'll probably see
 > >  > > the schg flag set.  Man chflags for more info and instructions on how
 > >  > > to unset it
 > >  > >
 > >  > > g.
 > >  > >
 > >  >
 > >  > Yes:
 > >  >
 > >  > -r-sr-xr-x  6 root  wheel  schg 18468 Aug  2 19:47 /usr/jail/box/usr/bin/chpass
 > >  >
 > >  > So I'd simply have to "chflags noschg /usr/jail/box/usr/bin/chpass"
 > >  > and then "cp /usr/jail/box/usr/bin/chpass
 > >  > /home/jail/box/usr/bin/chpass"?
 > >
 > > I think that you ought to be able to cp it as is.  You're just not
 > > allowed to change the original (e.g. remove it), which is why your mv
 > > and rm failed.
 > >
 > > g.
 > >
 > 
 > I've been told that changing flags might seriously mess things up. Is
 > there any way to copy the remaining files from /usr/jail into
 > /home/jail, or do I have to rebuild everything from scratch?

Having read the thread to date, I reckon you should:

 a) find(1) all schg files in your jails (was chpass the only one?)
 b) clear the schg flag on any such found as above (-R if you like)
 c) use mv as you originally intended (if they're still there :)
 d) chflags schg on all files that were originally set that way.

If you do use cp instead of mv, make sure to use cp -p to preserve 
each file's owner/group/permissions/datestamp.

 e) make sure any and all symlinks still point to the right file/s.

Personally I'd use cp -pR rather than mv in case I stuffed it up :) but 
then being perhaps overcautious I'd have started off with a 'ls -lR 
/usr/jail > listfile' (if I hadn't made a backup tar) to at least have a 
full list of what was where, with what user/perms etc ..

Also read cp(1) re -R flag carefully .. if there are any hard linked 
files, as there may well be, then using tar to move these would be 
the safest bet anyway - plus you'd have a backup .. next time anyway :)

Since it just failed to mv some files, you shouldn't need to rebuild if 
you can mv those files and reset their flags/permissions correctly.

cheers, Ian 


More information about the freebsd-questions mailing list