bug-cpio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-cpio] cpio 2.9: sets unexpected (wrong?) file owner UID


From: Radek Brich
Subject: Re: [Bug-cpio] cpio 2.9: sets unexpected (wrong?) file owner UID
Date: Mon, 11 Feb 2008 14:13:32 +0100
User-agent: KMail/1.9.6 (enterprise 0.20071204.744707)

On Tue 30. of October 2007 12:27:11 Alexey Stratonnikov wrote:
> When cpio archive is created as "find . -depth |cpio -o" and extracted as
> "cpio -i --make-directories" under root user, I get all directories owned
> by UID=0 no matter who was the owner of the directory when acrive was
> created.
>
> This may be shown as:
>
> $ su -
> tux ~ # id -u
> 0
> tux ~ # mkdir test; cd test
> tux test # mkdir in out; mkdir in/dir; touch in/dir/file
> tux test # chown 1 in/dir
> tux test # (cd in; find . -depth |cpio -o) | (cd out; cpio -i
> --make-directories)
> 1 block
> 1 block
> tux test # ls -ln in
> total 0
> drwxr-xr-x 2 1 0 72 Окт 22 08:56 dir
> tux test # ls -ln out
> total 0
> drwxr-xr-x 2 0 0 72 Окт 22 08:56 dir
> tux test # cpio --version
> cpio (GNU cpio) 2.9
> tux test #
>
> One can see different owner UID for in/dir and out/dir.
>
> Notice: when cpio -i works, the directory is first created, then populated
> with files, then set correct pwermissions and owner UID, and finally (when
> the whole archive is extracted), owner UID is reset back to 0.
>
> The problem was not observed with cpio 2.6.
> The problem does not emerge with "find |cpio -o" (without -depth).
>
> --
> Hope this information was useful,
> Alexey Stratonnikov

I can confirm this regression in cpio 2.9. It's quite bad, because the 
documentation suggests to use the 'find . -depth' as safest invocation of 
find for cpio. The bug does not occur in cpio 2.8.
I think the problem might be in delayed set_stat, but I did not found it 
yet...

-- 
Radek Brich
Base OS/core services
Red Hat, Brno, Czech Rep.

Attachment: signature.asc
Description: This is a digitally signed message part.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]