2011-11-16 14 views
14

Im pisania skryptu, który powinien to zrobić ...Bash: wykonywanie poleceń od wewnątrz chroot i przełączenie użytkownika

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

próbowałem tej metody:

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

Ten próbuje wykonać przełączanie użytkownika i skrypt jako polecenie łańcuchowe do bash ... jednak to, co robi, jest "zatrzymywane" po "su -" i nie wykonuje skryptu. Jednak, gdy opuszczę środowisko "su -", spróbuję uruchomić startup.sh, ale oczywiście nie mogę go znaleźć.

Zasadniczo muszę gniazdem „startup.sh” należy uruchomić wewnątrz „su -” Środowisko ...

jakieś pomysły?

Thanks a lot

Odpowiedz

29

spróbować

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

wielkie dzięki, nie wiem jak nie widziałem tego na stronie man! – dgrandes

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

podstawowa opcja.

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

opcja z innej powłoce (np jeśli używasz bash, ale w środowisku chroot to nie robi istnieje)

cat << EOF | chroot /chroot_dir /bin/sh 
touch aaaaa 
touch bbbbb 
EOF 
Powiązane problemy