web-dev-qa-db-fra.com

Bash: exécution de commandes depuis un chroot et changement d'utilisateur

J'écris un script qui devrait faire ça ...

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

J'ai essayé cette approche:

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

Ceci essaye d'exécuter le changement d'utilisateur et le script en tant que commande de chaîne pour bash ... quelle que soit sa fonction. Est-ce qu'il "s'arrête" après "su -" et n'exécute pas le script. Cependant, une fois que je quitte l'environnement "su -", il essaie de lancer startup.sh mais, bien sûr, il ne le trouve pas.

En gros, je dois imbriquer le fichier "startup.sh" pour qu'il soit exécuté dans l'environnement "su -" ...

Des idées?

Merci beaucoup

17
dgrandes

essayer

chroot /chroot_dir /bin/bash -c "su - -c ./startup.sh"
31
chroot /chroot_dir /bin/bash -x <<'EOF'
su -
./startup.sh
EOF
19
garuse

option de base:

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

option avec un shell différent (par exemple, si vous utilisez bash mais dans un environnement chroot, cela n'existe pas)

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