[Debian] chroot, userid's (en dus su) werken niet

Pagina: 1
Acties:

  • Fl4sh3r
  • Registratie: Juni 2002
  • Laatst online: 02-10-2023
Vandaag heb ik mij weer eens gericht op chroot. Ik heb een tutorial gevolgd, maar loop spaak op het volgende:
de userid's werken niet onder de chroot, dit heeft als neveneffect dat su niet werkt, welke redelijk essentieel is voor een veilige chroot.

Wat info:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#ls -R
.:
bin
dev
etc
home
lib
usr

./bin:
bash
cat
cp
env
ln
ls
mv
rm
su

./dev:
tty
urandom

./etc:
group
passwd
shadow
shells

./home:

./lib:
ld-linux.so.2
libacl.so.1
libattr.so.1
libc.so.6
libcrypt.so.1
libcrypto.so.0.9.7
libdl.so.2
libncurses.so.5
libnsl.so.1
libpam.so.0
libpam_misc.so.0
libpthread.so.0
libresolv.so.2
librt.so.1
libutil.so.1
libz.so.1

./usr:
bin
sbin

./usr/bin:
du
ssh
whoami

./usr/sbin:
useradd

# ls -al
total 9
drwxr-sr-x  8    0   50 1024 May  2 18:53 .
drwxr-sr-x  8    0   50 1024 May  2 18:53 ..
drwxr-sr-x  2    0   50 1024 May  2 16:00 bin
drwxr-sr-x  2    0   50 1024 May  2 15:29 dev
drwxr-sr-x  2    0   50 1024 May  2 18:59 etc
drwxr-sr-x  2 1001 1001 1024 May  2 15:17 home
drwxr-sr-x  2    0   50 1024 May  2 15:28 lib
drwxr-sr-x  4    0   50 1024 May  2 16:31 usr

# cat /etc/passwd
root:x:0:0::/:
peon:x:1001:1001::/home:

# cat /etc/shadow
root:!:12905::::::
peon:!:12905::::::

# su peon
su: user peon does not exist

Er staat nog weinig in de dirs, maar ik wil eerst die su en userid's werkend hebben, daarna kijk ik wel wat er verder nodig is.

Ik heb de halve dag op Afbeeldingslocatie: http://www.google.nl/images/logo_sm.gif zitten zoeken, vanalles geprobeerd, maar geen succes. De bash die nu draait heb ik zelf gecompiled, evenals de su die gebruikt wordt. (Onder de chroot that is);

Iemand suggesties?

  • _JGC_
  • Registratie: Juli 2000
  • Nu online
Je hebt ook nog een /etc/nsswitch.conf nodig, en daarbovenop nog de nodige libnss_* modules uit /lib.

  • Seth4Chaos
  • Registratie: Maart 2001
  • Niet online

Seth4Chaos

that's me...

ik heb hier een scrippie waarmee je vrij makkelijk een chroot kan aanmaken voor een gebruiker, dit komt dan wel in de homedir van de desbetreffende gebruiker te staan maar je kan het scripie aanpassen uiteraard.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/bash

#
# Usage: ./create_chroot_env username
#

# Here specify the apps you want into the enviroment
APPS="/bin/bash /bin/ls /bin/mkdir /bin/mv /bin/pwd /bin/rm /usr/bin/id /usr/bin/rsync /usr/bin/ssh /bin/ping"

# Sanity check
if [ "$1" = "" ] ; then
        echo "    Usage: ./create_chroot_env username"
        exit
fi

# Obtain username and HomeDir
CHROOT_USERNAME=$1
HOMEDIR=`grep /etc/passwd -e "^$CHROOT_USERNAME"  | cut -d':' -f 6`
mkdir $HOMEDIR/chroot
cd $HOMEDIR/chroot

# Create Directories no one will do it for you
mkdir etc
mkdir bin
mkdir usr
mkdir usr/bin

# Create short version to /usr/bin/groups 
# On some system it requires /bin/sh, which is generally unnessesary in a chroot cage

echo "#!/bin/bash" > usr/bin/groups
echo "id -Gn" >> usr/bin/groups

# Add some users to ./etc/paswd
grep /etc/passwd -e "^root" -e "^$CHROOT_USERNAME" > etc/passwd
grep /etc/group -e "^root" -e "^$CHROOT_USERNAME" > etc/group

# Copy the apps and the related libs
for prog in $APPS;  do
        cp $prog ./$prog
        
        # obtain a list of related libraryes
        ldd $prog > /dev/null
        if [ "$?" = 0 ] ; then 
                LIBS=`ldd $prog | awk '{ print $3 }'`
                for l in $LIBS; do
                        mkdir ./`dirname $l` > /dev/null 2>&1
                        cp $l ./$l
                done
        fi
done

# From some strange reason these 3 libraries are not in the ldd output, but without them 
# some stuff will not work, like usr/bin/groups
cp /lib/libnss_compat.so.2 /lib/libnsl.so.1 /lib/libnss_files.so.2 ./lib/

Mistakes are proof that you are trying...


Verwijderd

Duidelijke tutorial over chroot in debian, dmv debbootstrap en libpam-chroot

Building a chroot environment on debian with libpam-chroot:
http://www.chains.ch/chroot.php

  • Fl4sh3r
  • Registratie: Juni 2002
  • Laatst online: 02-10-2023
Bedankt, het werkt

Handig script ook :-) ik heb het gebruikt, ik denk dat het idd aan die libnss* modules ligt.

Debootstrap wil ik niet gebruiken, ik wil juist zoveel mogelijk weten wat erin staat. Ik heb het al een keer gedaan met debootstrap, maar toen kwam er een hoop 'zooi' bij. Is was te configgen, maar ik kies er voor alles handmatig te doen.

Zie nu pas dat het ook gewoon in de tutorial staat... onder RedHat welliswaar

[ Voor 12% gewijzigd door Fl4sh3r op 03-05-2005 17:18 ]