fakechroot icon indicating copy to clipboard operation
fakechroot copied to clipboard

id usermod useradd escaping root and reading /etc/passwd etc of host

Open mangodan2003 opened this issue 3 years ago • 0 comments

I'm not sure where the fault is here, but since Ubuntu 22.04 (previous known working was 20.04) id, usermod etc escape fakeroot filesystem and read hosts files as shown by:

dan@melon:~$ fakechroot fakeroot -i tmp/fakeroot.save -s tmp/fakeroot.save chroot tmp/root/ /bin/bash
root@melon:/# grep  'messagebus\|dan' /etc/group
messagebus:x:102:
root@melon:/# usermod -G  messagebus messagebus
usermod: group 'messagebus' does not exist
root@melon:/# usermod -G dan dan
root@melon:/# exit
exit
dan@melon:~$ grep  'messagebus\|dan' /etc/group
dan:x:1000:

Specifying a relative prefix for usermod makes it work, but doesnt realy help as the problem I'm facing originate in postinst files whilst running apt:

root@melon:/# usermod -G  messagebus messagebus
usermod: group 'messagebus' does not exist
root@melon:/# usermod -G  messagebus messagebus -P ../../
root@melon:/# usermod -G  messagebus messagebus -P /     
usermod: group 'messagebus' does not exist

Why is it that grep sees /etc/passwd of the fakeroot filetree, yet id sees that of the host? They seem to both be linked against the same fakechroot and libc libraries, but i do notice id is linked with sellinux.

root@melon:/# /bin/grep dan /etc/passwd
root@melon:/# id -u dan
1000
root@melon:/# ldd /bin/grep
        linux-vdso.so.1 (0x0000000000000000)
        libfakeroot-sysv.so => /usr/lib/x86_64-linux-gnu/libfakeroot/libfakeroot-sysv.so (0x0000000000000000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x0000000000000000)
        /lib64/ld-linux-x86-64.so.2 (0x0000000000000000)
        libfakechroot.so => /usr/lib/x86_64-linux-gnu/fakechroot/libfakechroot.so (0x0000000000000000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x0000000000000000)
root@melon:/# ldd /usr/bin/id 
        linux-vdso.so.1 (0x0000000000000000)
        libfakeroot-sysv.so => /usr/lib/x86_64-linux-gnu/libfakeroot/libfakeroot-sysv.so (0x0000000000000000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x0000000000000000)
        /lib64/ld-linux-x86-64.so.2 (0x0000000000000000)
        libfakechroot.so => /usr/lib/x86_64-linux-gnu/fakechroot/libfakechroot.so (0x0000000000000000)
        libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x0000000000000000)
        libpcre2-8.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x0000000000000000)

mangodan2003 avatar Mar 22 '23 15:03 mangodan2003