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を実行しようとしますが、もちろん、それを見つけることができません。

基本的に、「su-」環境内で実行するために「startup.sh」をネストする必要があります。

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 を使用しているが、chroot 環境では存在しない場合)

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