Bash: выполнение команд из chroot и переключения пользователя

Im, пишущий script, который должен это сделать...

chroot /chroot_dir/ su -
./startup.sh (This should run within the su environment)

Я пробовал этот подход:

chroot /chroot_dir /bin/bash -c " su -; ./startup.sh"

Это попытка выполнить переключение пользователя и script как строку команды на bash... однако, что она делает, это "останавливается" после    "su -" и не выполняет script. Однако, когда я покидаю среду su, она пытается запустить startup.sh, но, конечно, она не может найти ее.

В принципе мне нужно вложить "startup.sh" в среду "su -"...

Любые идеи?

Спасибо большое

Ответы

Ответ 1

попробовать

chroot /chroot_dir /bin/bash -c "su - -c ./startup.sh"

Ответ 2

chroot /chroot_dir /bin/bash -x <<'EOF'
su -
./startup.sh
EOF

Ответ 3

базовый вариант:

cat << EOF | chroot /chroot_dir 
touch aaaaa
touch bbbbb
EOF

с другой оболочкой (например, при использовании bash, но в chrooted среде она не существует)

cat << EOF | chroot /chroot_dir /bin/sh
touch aaaaa
touch bbbbb
EOF