LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* ownership/permissions of cpio initrd
@ 2006-12-05 17:20 ` Marty Leisner
  2006-12-05 20:07   ` Horst H. von Brand
                     ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Marty Leisner @ 2006-12-05 17:20 UTC (permalink / raw)
  To: linux-kernel, bug-cpio; +Cc: martin.leisner

I'm working on an embedded system with the 2.6 kernel -- cpio
initrd was a new feature I'm looking at (and very welcome).

The major advantage I see is you don't have MAKE a filesystem
on the build host (doing cross development).  So you don't have
to be root.

But its "useful" to change permissions/ownership of the initrd
files at times...

Since a cpio is just a userspace created string of bits, I suppose
you can apply a set of ownership/permissions to files IN the archive
by playing with the bits...

Does such a tool exist?  Comments?  Seems very useful in order to
avoid being root...

marty

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ownership/permissions of cpio initrd 
  2006-12-05 17:20 ` ownership/permissions of cpio initrd Marty Leisner
@ 2006-12-05 20:07   ` Horst H. von Brand
  2006-12-05 20:17     ` Jeffrey Hundstad
  2006-12-05 20:30   ` Andreas Schwab
  2006-12-06 12:17   ` Rainer Bawidamann
  2 siblings, 1 reply; 14+ messages in thread
From: Horst H. von Brand @ 2006-12-05 20:07 UTC (permalink / raw)
  To: Marty Leisner; +Cc: linux-kernel, bug-cpio, martin.leisner

Marty Leisner <linux@rochester.rr.com> wrote:
> I'm working on an embedded system with the 2.6 kernel -- cpio
> initrd was a new feature I'm looking at (and very welcome).
> 
> The major advantage I see is you don't have MAKE a filesystem
> on the build host (doing cross development).  So you don't have
> to be root.

> But its "useful" to change permissions/ownership of the initrd
> files at times...

> Since a cpio is just a userspace created string of bits, I suppose
> you can apply a set of ownership/permissions to files IN the archive
> by playing with the bits...

The easy way out is to unpack the initrd, fix permissions, and repack. That
requires root, though (it creates devices).

> Does such a tool exist?  Comments?  Seems very useful in order to
> avoid being root...

I'd use sudo(1) + specially cooked commands to unpack/pack an initrd. It is
a bit more work, but gives you extra flexibility (i.e., not just futzing
around with permissions, can also add/replace/edit/rename/delete files, ...
using bog standard tools).
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ownership/permissions of cpio initrd
  2006-12-05 20:07   ` Horst H. von Brand
@ 2006-12-05 20:17     ` Jeffrey Hundstad
  2006-12-05 20:24       ` Horst H. von Brand
  2006-12-06  6:54       ` Marty Leisner
  0 siblings, 2 replies; 14+ messages in thread
From: Jeffrey Hundstad @ 2006-12-05 20:17 UTC (permalink / raw)
  To: Horst H. von Brand; +Cc: Marty Leisner, linux-kernel, bug-cpio, martin.leisner

You can also use fakeroot(1).

Start fakeroot.
Change all of your permissions as you see fit.
make your cpio
exit fakeroot.



Horst H. von Brand wrote:
> Marty Leisner <linux@rochester.rr.com> wrote:
>   
>> I'm working on an embedded system with the 2.6 kernel -- cpio
>> initrd was a new feature I'm looking at (and very welcome).
>>
>> The major advantage I see is you don't have MAKE a filesystem
>> on the build host (doing cross development).  So you don't have
>> to be root.
>>     
>
>   
>> But its "useful" to change permissions/ownership of the initrd
>> files at times...
>>     
>
>   
>> Since a cpio is just a userspace created string of bits, I suppose
>> you can apply a set of ownership/permissions to files IN the archive
>> by playing with the bits...
>>     
>
> The easy way out is to unpack the initrd, fix permissions, and repack. That
> requires root, though (it creates devices).
>
>   
>> Does such a tool exist?  Comments?  Seems very useful in order to
>> avoid being root...
>>     
>
> I'd use sudo(1) + specially cooked commands to unpack/pack an initrd. It is
> a bit more work, but gives you extra flexibility (i.e., not just futzing
> around with permissions, can also add/replace/edit/rename/delete files, ...
> using bog standard tools).
>   

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ownership/permissions of cpio initrd 
  2006-12-05 20:17     ` Jeffrey Hundstad
@ 2006-12-05 20:24       ` Horst H. von Brand
  2006-12-05 20:32         ` Jan Engelhardt
  2006-12-05 20:35         ` Jeffrey Hundstad
  2006-12-06  6:54       ` Marty Leisner
  1 sibling, 2 replies; 14+ messages in thread
From: Horst H. von Brand @ 2006-12-05 20:24 UTC (permalink / raw)
  To: Jeffrey Hundstad
  Cc: Horst H. von Brand, Marty Leisner, linux-kernel, bug-cpio,
	martin.leisner

Jeffrey Hundstad <jeffrey.hundstad@mnsu.edu> wrote:
> You can also use fakeroot(1).

I think that is a debianism... not here on Fedora.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ownership/permissions of cpio initrd
  2006-12-05 17:20 ` ownership/permissions of cpio initrd Marty Leisner
  2006-12-05 20:07   ` Horst H. von Brand
@ 2006-12-05 20:30   ` Andreas Schwab
  2006-12-05 21:56     ` Leisner, Martin
  2006-12-06 12:17   ` Rainer Bawidamann
  2 siblings, 1 reply; 14+ messages in thread
From: Andreas Schwab @ 2006-12-05 20:30 UTC (permalink / raw)
  To: Marty Leisner; +Cc: linux-kernel, bug-cpio, martin.leisner

"Marty Leisner" <linux@rochester.rr.com> writes:

> Since a cpio is just a userspace created string of bits, I suppose
> you can apply a set of ownership/permissions to files IN the archive
> by playing with the bits...

  -R, --owner=[USER][:.][GROUP]   Set the ownership of all files created to the
                             specified USER and/or GROUP

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ownership/permissions of cpio initrd 
  2006-12-05 20:24       ` Horst H. von Brand
@ 2006-12-05 20:32         ` Jan Engelhardt
  2006-12-05 20:35         ` Jeffrey Hundstad
  1 sibling, 0 replies; 14+ messages in thread
From: Jan Engelhardt @ 2006-12-05 20:32 UTC (permalink / raw)
  To: Horst H. von Brand
  Cc: Jeffrey Hundstad, Marty Leisner, linux-kernel, bug-cpio, martin.leisner


>> You can also use fakeroot(1).
>
>I think that is a debianism... not here on Fedora.

	LKML is (hopefully) distro neutral.

That useless line aside, the linux kernel build process supports 
creating a cpio archive with privileged things (devices) as a normal 
user.

	-`J'
-- 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ownership/permissions of cpio initrd
  2006-12-05 20:24       ` Horst H. von Brand
  2006-12-05 20:32         ` Jan Engelhardt
@ 2006-12-05 20:35         ` Jeffrey Hundstad
  2006-12-05 20:39           ` Jan Engelhardt
  1 sibling, 1 reply; 14+ messages in thread
From: Jeffrey Hundstad @ 2006-12-05 20:35 UTC (permalink / raw)
  To: Horst H. von Brand; +Cc: Marty Leisner, linux-kernel, bug-cpio, martin.leisner

It appears to not be standard with fedora for sure... but while it 
origiginally was/is a Debian package it looks like there is source if 
you'd like to build it on other systems.  It was originally designed to 
tackle the exact problem you are confronting.

See:
http://freshmeat.net/projects/fakeroot/

About:
Fakeroot runs a command in an environment were it appears to have root 
privileges for file manipulation, by setting LD_PRELOAD to a library 
with alternative versions of getuid(), stat(), etc. This is useful for 
allowing users to create archives (tar, ar, .deb .rpm etc.) with files 
in them with root permissions/ownership. Without fakeroot one would have 
to have root privileges to create the constituent files of the archives 
with the correct permissions and ownership, and then pack them up, or 
one would have to construct the archives directly, without using the 
archiver.

Horst H. von Brand wrote:
> Jeffrey Hundstad <jeffrey.hundstad@mnsu.edu> wrote:
>   
>> You can also use fakeroot(1).
>>     
>
> I think that is a debianism... not here on Fedora.
>   

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ownership/permissions of cpio initrd
  2006-12-05 20:35         ` Jeffrey Hundstad
@ 2006-12-05 20:39           ` Jan Engelhardt
  2006-12-05 20:58             ` Jeffrey Hundstad
  0 siblings, 1 reply; 14+ messages in thread
From: Jan Engelhardt @ 2006-12-05 20:39 UTC (permalink / raw)
  To: Jeffrey Hundstad
  Cc: Horst H. von Brand, Marty Leisner, linux-kernel, bug-cpio,
	martin.leisner


> It appears to not be standard with fedora for sure... but while it origiginally
> was/is a Debian package it looks like there is source if you'd like to build it
> on other systems.  It was originally designed to tackle the exact problem you
> are confronting.
>
> See:
> http://freshmeat.net/projects/fakeroot/
>
> About:
> Fakeroot runs a command in an environment were it appears to have root
> privileges for file manipulation, by setting LD_PRELOAD to a library with
> alternative versions of getuid(), stat(), etc. This is useful for allowing
> users to create archives (tar, ar, .deb .rpm etc.) with files in them with root
> permissions/ownership. Without fakeroot one would have to have root privileges
> to create the constituent files of the archives with the correct permissions
> and ownership, and then pack them up, or one would have to construct the
> archives directly, without using the archiver.

Ugh that sounds even more than a hack. At least for one-user 
archives, I guess nobody at Debian knows that tar has a --user and 
--group option.


	-`J'
-- 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ownership/permissions of cpio initrd
  2006-12-05 20:39           ` Jan Engelhardt
@ 2006-12-05 20:58             ` Jeffrey Hundstad
  2006-12-05 21:43               ` Jan Engelhardt
  0 siblings, 1 reply; 14+ messages in thread
From: Jeffrey Hundstad @ 2006-12-05 20:58 UTC (permalink / raw)
  To: Jan Engelhardt
  Cc: Horst H. von Brand, Marty Leisner, linux-kernel, bug-cpio,
	martin.leisner

Jan Engelhardt wrote:
>> It appears to not be standard with fedora for sure... but while it origiginally
>> was/is a Debian package it looks like there is source if you'd like to build it
>> on other systems.  It was originally designed to tackle the exact problem you
>> are confronting.
>>
>> See:
>> http://freshmeat.net/projects/fakeroot/
>>
>> About:
>> Fakeroot runs a command in an environment were it appears to have root
>> privileges for file manipulation, by setting LD_PRELOAD to a library with
>> alternative versions of getuid(), stat(), etc. This is useful for allowing
>> users to create archives (tar, ar, .deb .rpm etc.) with files in them with root
>> permissions/ownership. Without fakeroot one would have to have root privileges
>> to create the constituent files of the archives with the correct permissions
>> and ownership, and then pack them up, or one would have to construct the
>> archives directly, without using the archiver.
>>     
>
> Ugh that sounds even more than a hack. At least for one-user 
> archives, I guess nobody at Debian knows that tar has a --user and 
> --group option.
>
>
> 	-`J'
>   

...It also let's you mknod and friends, and let's you set permissions to 
files to more than just ONE user.  The whole point of the commands is to 
let you make distribution files without root access.  Of course you can 
fake all of this with a special archiver command.... I'm just throwing 
out options.

$ fakeroot
# mkdir root
# mkdir root/dev/
# mknod root/dev/null c 1 3
# mknod root/dev/sda1 b 8 1
# chown root.disk root/dev/sda1
# cd root
# tar cvf ../root.tar ./
# exit
$ tar tvf root.tar
drwxr-xr-x root/root         0 2006-12-05 14:54 ./
drwxr-xr-x root/root         0 2006-12-05 14:54 ./dev/
crw-r--r-- root/root       1,3 2006-12-05 14:54 ./dev/null
brw-r--r-- root/disk       8,1 2006-12-05 14:54 ./dev/sda1

-- 
Jeffrey Hundstad



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ownership/permissions of cpio initrd
  2006-12-05 20:58             ` Jeffrey Hundstad
@ 2006-12-05 21:43               ` Jan Engelhardt
  0 siblings, 0 replies; 14+ messages in thread
From: Jan Engelhardt @ 2006-12-05 21:43 UTC (permalink / raw)
  To: Jeffrey Hundstad
  Cc: Horst H. von Brand, Marty Leisner, linux-kernel, bug-cpio,
	martin.leisner


On Dec 5 2006 14:58, Jeffrey Hundstad wrote:
>
> ...It also let's you mknod and friends, and let's you set permissions to files
> to more than just ONE user.  The whole point of the commands is to let you make
> distribution files without root access.  Of course you can fake all of this
> with a special archiver command.... I'm just throwing out options.

Ah. Thanks for explaining! Looks like it eats big amounts of memory when there
are a lot of files in the faekroot.


>
> $ fakeroot
> #  mkdir root
> #  mkdir root/dev/
> #  mknod root/dev/null c 1 3
> #  mknod root/dev/sda1 b 8 1
> #  chown root.disk root/dev/sda1
> #  cd root
> #  tar cvf ../root.tar ./
> #  exit
> $ tar tvf root.tar
> drwxr-xr-x root/root         0 2006-12-05 14:54 ./
> drwxr-xr-x root/root         0 2006-12-05 14:54 ./dev/
> crw-r--r-- root/root       1,3 2006-12-05 14:54 ./dev/null
> brw-r--r-- root/disk       8,1 2006-12-05 14:54 ./dev/sda1
>
> -- 
> Jeffrey Hundstad
>
>
>

	-`J'
-- 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* RE: ownership/permissions of cpio initrd
  2006-12-05 20:30   ` Andreas Schwab
@ 2006-12-05 21:56     ` Leisner, Martin
  2006-12-05 22:23       ` Andreas Schwab
  0 siblings, 1 reply; 14+ messages in thread
From: Leisner, Martin @ 2006-12-05 21:56 UTC (permalink / raw)
  To: Andreas Schwab, Marty Leisner; +Cc: linux-kernel, bug-cpio

hmmm...I looked at that -- that's extract and passthrough, but not create...

I'll look at the other solutions...but the bottom line if you want to do root things, you need to
become root -- its always a better idea to munge bits than change permissions...so ANYONE can make
distributions with no special priveleges...


marty 

> -----Original Message-----
> From: Andreas Schwab [mailto:schwab@suse.de] 
> Sent: Tuesday, December 05, 2006 3:31 PM
> To: Marty Leisner
> Cc: linux-kernel@vger.kernel.org; bug-cpio@gnu.org; Leisner, Martin
> Subject: Re: ownership/permissions of cpio initrd
> 
> "Marty Leisner" <linux@rochester.rr.com> writes:
> 
> > Since a cpio is just a userspace created string of bits, I suppose
> > you can apply a set of ownership/permissions to files IN the archive
> > by playing with the bits...
> 
>   -R, --owner=[USER][:.][GROUP]   Set the ownership of all 
> files created to the
>                              specified USER and/or GROUP
> 
> Andreas.
> 
> -- 
> Andreas Schwab, SuSE Labs, schwab@suse.de
> SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
> PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 
> 214B 8276 4ED5
> "And now for something completely different."
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ownership/permissions of cpio initrd
  2006-12-05 21:56     ` Leisner, Martin
@ 2006-12-05 22:23       ` Andreas Schwab
  0 siblings, 0 replies; 14+ messages in thread
From: Andreas Schwab @ 2006-12-05 22:23 UTC (permalink / raw)
  To: Leisner, Martin; +Cc: Marty Leisner, linux-kernel, bug-cpio

"Leisner, Martin" <Martin.Leisner@xerox.com> writes:

> hmmm...I looked at that -- that's extract and passthrough, but not create...

No, it's copy-out and copy-pass.  It does not make sense for copy-in.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ownership/permissions of cpio initrd 
  2006-12-05 20:17     ` Jeffrey Hundstad
  2006-12-05 20:24       ` Horst H. von Brand
@ 2006-12-06  6:54       ` Marty Leisner
  1 sibling, 0 replies; 14+ messages in thread
From: Marty Leisner @ 2006-12-06  6:54 UTC (permalink / raw)
  To: Jeffrey Hundstad
  Cc: Horst H. von Brand, Marty Leisner, linux-kernel, bug-cpio,
	martin.leisner, linux

Jeffrey Hundstad <jeffrey.hundstad@mnsu.edu> writes  on Tue, 05 Dec 20
06 14:17:22 CST
     > You can also use fakeroot(1).
     > 
     > Start fakeroot.
     > Change all of your permissions as you see fit.
     > make your cpio
     > exit fakeroot.
     > 
     > 
     > 

Thanks....I got it running on fedora4 pretty easily...

Looks like its what I want/need -- 


marty


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ownership/permissions of cpio initrd
  2006-12-05 17:20 ` ownership/permissions of cpio initrd Marty Leisner
  2006-12-05 20:07   ` Horst H. von Brand
  2006-12-05 20:30   ` Andreas Schwab
@ 2006-12-06 12:17   ` Rainer Bawidamann
  2 siblings, 0 replies; 14+ messages in thread
From: Rainer Bawidamann @ 2006-12-06 12:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: Marty Leisner

In article <200612051720.kB5HKU4i001616@dell2.home>,
	"Marty Leisner" <linux@rochester.rr.com> writes:
> But its "useful" to change permissions/ownership of the initrd
> files at times...
> 
> Since a cpio is just a userspace created string of bits, I suppose
> you can apply a set of ownership/permissions to files IN the archive
> by playing with the bits...
> 
> Does such a tool exist?  Comments?  Seems very useful in order to
> avoid being root...

The kernel sources provide a program that should do what you want in

	linux/usr/gen_init_cpio.c

Documentation is available in the source or from the command line.

Rainer

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2006-12-06 12:17 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <linux@rochester.rr.com>
2006-12-05 17:20 ` ownership/permissions of cpio initrd Marty Leisner
2006-12-05 20:07   ` Horst H. von Brand
2006-12-05 20:17     ` Jeffrey Hundstad
2006-12-05 20:24       ` Horst H. von Brand
2006-12-05 20:32         ` Jan Engelhardt
2006-12-05 20:35         ` Jeffrey Hundstad
2006-12-05 20:39           ` Jan Engelhardt
2006-12-05 20:58             ` Jeffrey Hundstad
2006-12-05 21:43               ` Jan Engelhardt
2006-12-06  6:54       ` Marty Leisner
2006-12-05 20:30   ` Andreas Schwab
2006-12-05 21:56     ` Leisner, Martin
2006-12-05 22:23       ` Andreas Schwab
2006-12-06 12:17   ` Rainer Bawidamann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).