19

我正在编写一个应该这样做的脚本......

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

我试过这种方法:

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

这试图执行用户切换和脚本作为 bash 的字符串命令......但是它的作用是在 “su -”之后“停止”并且不执行脚本。但是,一旦我离开“su -”环境,它确实会尝试运行 startup.sh,但它当然找不到它。

基本上我需要将“startup.sh”嵌套在“su -”环境中运行......

4

3 回答 3

37

尝试

chroot /chroot_dir /bin/bash -c "su - -c ./startup.sh"
于 2011-11-16T20:08:29.127 回答
25
chroot /chroot_dir /bin/bash -x <<'EOF'
su -
./startup.sh
EOF
于 2013-03-27T21:33:57.963 回答
5

基本选项:

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

具有不同外壳的选项(例如,如果使用 bash 但在 chrooted 环境中它不存在)

cat << EOF | chroot /chroot_dir /bin/sh
touch aaaaa
touch bbbbb
EOF
于 2017-08-22T14:11:19.020 回答