it-swarm.com.de

Bash: Ausführen von Befehlen innerhalb einer Chroot- und Switch-Benutzer

Ich schreibe ein Skript, das dies tun sollte ...

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

Ich habe diesen Ansatz ausprobiert:

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

Dies versucht, die Benutzerumschaltung auszuführen und das Skript als String-Befehl zum Bash auszuführen. Was es jedoch tut, ist, dass es nach "su -" "stoppt" und das Skript nicht ausführt. Wenn ich jedoch die "su -" - Umgebung verlasse, versucht es, startup.sh auszuführen, kann es aber natürlich nicht finden.

Grundsätzlich muss ich die "startup.sh" verschachteln, um in der "su -" - Umgebung ausgeführt zu werden ...

Irgendwelche Ideen?

Danke vielmals

17
dgrandes

versuchen

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

grundausstattung:

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

option mit anderer Shell (z. B. wenn bash verwendet wird, aber in einer chroot-Umgebung nicht vorhanden ist)

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