FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo User

 
 
LinkBack Thread Tools
 
Old 12-14-2009, 12:02 PM
Shinkan
 
Default Emerge with --root option : users not created

Hi everyone,

I wanted to submit this as a bug on bugzilla, but I must be sure there is nothing that I miss.

Let's say I have a /target dir.
If
I do 'emerge --root=/target <someport>' (cross-emerge), and that
<someport> is supposed to create users (like vixie-cron, clamav
or many others), users are not created on /target. I can verify that by
chrooting on /target and making something that requires this user (such
as launching clamd for clamav), or simply by looking at
/target/etc/passwd to see that there's no expected users.


Am I missing somethings or is this really a bug ?

Thanks in advance.
--
Pierre.
"Sometimes when I'm talking, my words can't keep up with my thoughts. I wonder why we think faster than we speak. Probably so we can think twice." - Bill Watterson
 
Old 12-14-2009, 02:13 PM
Willie Wong
 
Default Emerge with --root option : users not created

On Mon, Dec 14, 2009 at 02:02:22PM +0100, Penguin Lover Shinkan squawked:
> I wanted to submit this as a bug on bugzilla, but I must be sure there is
> nothing that I miss.
>
> Let's say I have a /target dir.
> If I do 'emerge --root=/target <someport>' (cross-emerge), and that
> <someport> is supposed to create users (like vixie-cron, clamav or many
> others), users are not created on /target. I can verify that by chrooting on
> /target and making something that requires this user (such as launching
> clamd for clamav), or simply by looking at /target/etc/passwd to see that
> there's no expected users.
>
> Am I missing somethings or is this really a bug ?
>

If you don't get a better answer here, you should ask the embedded
group. But I think it maybe a bug:

Looking at eutils.eclass, in function enewuser, it explicitly checks
for whether the shell specified is available in ${ROOT}, but when it
comes time to create the actual user, it calls the system useradd,
which I think will add the user to /etc, and not ${ROOT}/etc...

Though, I cannot right now think of how to actually change it so that
it will create the appropriate accounts in a modified ${ROOT}. AFAIK
useradd does not support this. It may require re-implementing useradd
in portage? Which will just be silly.

Perhaps ${ROOT} is not designed to be used the way you intend to use
it? It looks like you are building embedded or cross-compiled, right?
Maybe a work-around is to do everything in a CHROOT?

Anyway, ask gentoo-embedded to see if there's any work arounds, and
maybe ask gentoo-dev to clarify on what $ROOT is used for?

Cheers,

W
--
A plateau is a high form of flattery.
Sortir en Pantoufles: up 1102 days, 13:42
 
Old 12-14-2009, 03:15 PM
Shinkan
 
Default Emerge with --root option : users not created

Thanks, I'll do that !

2009/12/14 Willie Wong <wwong@math.princeton.edu>


On Mon, Dec 14, 2009 at 02:02:22PM +0100, Penguin Lover Shinkan squawked:

> I wanted to submit this as a bug on bugzilla, but I must be sure there is

> nothing that I miss.

>

> Let's say I have a /target dir.

> If I do 'emerge --root=/target <someport>' (cross-emerge), and that

> <someport> is supposed to create users (like vixie-cron, clamav or many

> others), users are not created on /target. I can verify that by chrooting on

> /target and making something that requires this user (such as launching

> clamd for clamav), or simply by looking at /target/etc/passwd to see that

> there's no expected users.

>

> Am I missing somethings or is this really a bug ?

>



If you don't get a better answer here, you should ask the embedded

group. But I think it maybe a bug:



Looking at eutils.eclass, in function enewuser, it explicitly checks

for whether the shell specified is available in ${ROOT}, but when it

comes time to create the actual user, it calls the system useradd,

which I think will add the user to /etc, and not ${ROOT}/etc...



Though, I cannot right now think of how to actually change it so that

it will create the appropriate accounts in a modified ${ROOT}. AFAIK

useradd does not support this. It may require re-implementing useradd

in portage? Which will just be silly.



Perhaps ${ROOT} is not designed to be used the way you intend to use

it? It looks like you are building embedded or cross-compiled, right?

Maybe a work-around is to do everything in a CHROOT?



Anyway, ask gentoo-embedded to see if there's any work arounds, and

maybe ask gentoo-dev to clarify on what $ROOT is used for?



Cheers,



W

--

A plateau is a high form of flattery.

Sortir en Pantoufles: up 1102 days, 13:42





--
Pierre.
"Sometimes when I'm talking, my words can't keep up with my thoughts. I wonder why we think faster than we speak. Probably so we can think twice." - Bill Watterson
 
Old 12-14-2009, 07:41 PM
Alan McKinnon
 
Default Emerge with --root option : users not created

On Monday 14 December 2009 15:02:22 Shinkan wrote:
> Hi everyone,
>
> I wanted to submit this as a bug on bugzilla, but I must be sure there is
> nothing that I miss.
>
> Let's say I have a /target dir.
> If I do 'emerge --root=/target <someport>' (cross-emerge), and that
> <someport> is supposed to create users (like vixie-cron, clamav or many
> others), users are not created on /target. I can verify that by chrooting
> on /target and making something that requires this user (such as launching
> clamd for clamav), or simply by looking at /target/etc/passwd to see that
> there's no expected users.
>
> Am I missing somethings or is this really a bug ?

What you are trying to do makes no sense. You are either cross-compiling for
chroot-type purposes or cross-compiling for a different machine and arch.

If it's the former, you do not need or want an /etc/passwd in the chroot - you
start such things with the EUID of the intended user from the starts.

If it's for another machine, what good will a passwd file be? What are you
going to do with it? You certainly can't copy it to the target intact, you
can't cat and append it to the passwd file on the target host, in fact you
cannot make any assumptions about the target at all, not even that a passwd
file is present there.

The only thing you can do in that case is write an installer script that takes
you tar.bz2, unpacks it on the target and then checks the status there and
runs useradd as necessary depending on what it finds.


--
alan dot mckinnon at gmail dot com
 

Thread Tools




All times are GMT. The time now is 12:34 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org