Reputation: 1207
Im writing a script that should do this...
chroot /chroot_dir/ su -
./startup.sh (This should run within the su environment)
I have tried this approach:
chroot /chroot_dir /bin/bash -c " su -; ./startup.sh"
This tries to execute the user switching and the script as a string command to bash...however what it does, is it "stops" after "su -" and doesnt execute the script. However, once I leave the "su -" environment, it does try to run startup.sh but of course, it cant find it.
Basically I need to nest the "startup.sh" to be run inside the "su -" environment...
Upvotes: 21
Views: 54171
Reputation: 726
basic option:
cat << EOF | chroot /chroot_dir
touch aaaaa
touch bbbbb
EOF
option with different shell (eg. if using bash but in chrooted enviroment it doesn't exists)
cat << EOF | chroot /chroot_dir /bin/sh
touch aaaaa
touch bbbbb
EOF
Upvotes: 10
Reputation: 143239
try
chroot /chroot_dir /bin/bash -c "su - -c ./startup.sh"
Upvotes: 46