All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Peter A. Bigot" <pab@pabigot.com>
To: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 0/3] pseudo+image.bbclass: changes to avoid host contamination
Date: Fri, 31 Oct 2014 23:15:56 -0500	[thread overview]
Message-ID: <54545E7C.2060804@pabigot.com> (raw)
In-Reply-To: <20141013173545.0d2c5de0@e6410-2>

On 10/13/2014 05:35 PM, Peter Seebach wrote:
> On Mon, 13 Oct 2014 17:29:26 -0500
> "Peter A. Bigot" <pab@pabigot.com> wrote:
>
>> Basically, even if "root" is a special case, taking this path means
>> making assumptions about what the application is doing based on what
>> system/libc functions it invokes.  Too often when somebody assumes a
>> general tool will only be used specific ways, somebody else will prove
>> them wrong.
> True.
>
> For the oe-core case, it seems like it might be reasonable for us to set
> pseudo up to, by default, get configured with preloaded things which match
> the expected configuration of base-passwd. If people then go overriding
> base-passwd in strange ways, they could break that, but we at least know what
> the default configuration would be, and could possibly even make base-passwd
> check whether pseudo's configuration matches its answers, and blow up if
> there's a mismatch there.

I've discovered a few more cases where OE packages get the wrong target 
username/group for files, at least in RPM packages.

First, revisiting the discussion above I've played with using 
--without-passwd-fallback and adding base-passwd as an explicit 
dependency. This won't work: glibc-initial requires base-passwd for 
group name lookups, and base-passwd includes update-passwd as an 
executable which requires glibc.

The options seem to be to split base-passwd into separate recipes for 
the data files and the utility to break the circular dependency, or 
having pseudo synthesize a fallback passwd/group.  Prior to gaining 
experience I didn't like the second choice, but I like the first even 
less.  As long as pseudo emits a note saying what it's doing so we can 
add the DEPENDS=base-passwd where that's not circular (as with tzdata), 
my vote goes toward pseudo synthesis. I'm hoping somebody disagrees and 
comes up with a better, third alternative.

However, I've also discovered another issue, possibly related to: 
http://lists.openembedded.org/pipermail/openembedded-core/2011-December/053866.html

On my development machine my uid:gid are both 1000 and correspond to 
pab:pab.  Using poky master with MACHINE=beaglebone building 
core-image-sato the corresponding user:group is xuser:xuser.

Running the following script:

find tmp/deploy/ -name '*.rpm' \
   | while read f ; do \
     rpm -qlvp ${f} 2>/dev/null \
       | awk '$3~/pab|xuser/ || $4~/pab|xuser/ {print;}' \
       > /tmp/c$$ ; \
     if [ -s /tmp/c$$ ] ; then \
       echo ; \
       echo $f; \
       cat /tmp/c$$ ; \
     fi ; \
   done

I find the following packages include files that are given group or user 
xuser, indicating that the files were installed with user:group set to 
the host value 1000:1000 instead of being remapped to 0:0 by pseudo, but 
when packaging pseudo does "correctly" interpret the uid:gid using the 
target passwd/group files:

tmp/deploy/rpm/cortexa8hf_vfp_neon/attr-ptest-2.4.47-r0.0.cortexa8hf_vfp_neon.rpm
tmp/deploy/rpm/cortexa8hf_vfp_neon/acl-ptest-2.2.52-r0.0.cortexa8hf_vfp_neon.rpm
tmp/deploy/rpm/cortexa8hf_vfp_neon/systemd-216+git0+5d0ae62c66-r0.0.cortexa8hf_vfp_neon.rpm
tmp/deploy/rpm/cortexa8hf_vfp_neon/perl-ptest-5.20.0-r1.0.cortexa8hf_vfp_neon.rpm

For example:

llc[11]$ rpm -qlvp 
tmp/deploy/rpm/cortexa8hf_vfp_neon/perl-ptest-5.20.0-r1.0.cortexa8hf_vfp_neon.rpm
-r--r--r--    1 xuser   xuser                   45590 May 26 08:34 
/usr/lib/perl/ptest/AUTHORS
-r--r--r--    1 xuser   xuser                    6321 Jan 31  2014 
/usr/lib/perl/ptest/Artistic
-r--r--r--    1 xuser   xuser                    3168 Jan 31  2014 
/usr/lib/perl/ptest/Changes
-r-xr-xr-x    1 xuser   xuser                  552838 Oct 31 15:34 
/usr/lib/perl/ptest/Configure

Further, this one even manages to get the user:group names from the host:

llc[12]$ rpm -qlvp 
tmp/deploy/rpm/cortexa8hf_vfp_neon/libgcc-s-dev-4.9.1-r0.0.cortexa8hf_vfp_neon.rpm 
| grep pab
lrwxrwxrwx    1 pab     pab                        22 Oct 31 15:17 
/usr/lib/arm-poky-linux -> arm-poky-linux-gnueabi

My tentative conclusion is that these new behaviors aren't related to 
the pseudo falling back to host /etc files, but probably instead by 
files getting installed (and in one case somehow packaged) without using 
pseudo.  I have no idea why that's happening, but it does appear 
something's not working right.

Peter



  reply	other threads:[~2014-11-01  4:15 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-12 23:49 [PATCH 0/3] pseudo+image.bbclass: changes to avoid host contamination Peter A. Bigot
2014-10-12 23:49 ` [PATCH 1/3] pseudo: support --without-passwd-fallback configuration option Peter A. Bigot
2014-10-13  1:23   ` Peter Seebach
2014-10-12 23:49 ` [PATCH 2/3] pseudo: support multiple search directories in PSEUDO_PASSWD Peter A. Bigot
2014-10-13  1:30   ` Peter Seebach
2014-10-12 23:49 ` [PATCH 3/3] image.bbclass: search both rootfs and staging dir for passwd files Peter A. Bigot
2014-10-13 21:28 ` [PATCH 0/3] pseudo+image.bbclass: changes to avoid host contamination Peter Seebach
2014-10-13 22:29   ` Peter A. Bigot
2014-10-13 22:35     ` Peter Seebach
2014-11-01  4:15       ` Peter A. Bigot [this message]
2014-11-01 17:11         ` Peter A. Bigot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54545E7C.2060804@pabigot.com \
    --to=pab@pabigot.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.