Executando o comando dentro de um chroot de um script apache / php

1

Eu preciso testar alguns scripts bash, eu configurei um squeeze debian em um chroot. A partir da linha de comando, eu posso usar o comando chroot / directory my-command, ou schroot -d / -u root my-command, mas preciso executar esses comandos a partir de um teste PHPUnit, executado pelo Apache (usuário www-data). Com schroot eu tenho esse erro

E: No controlling terminal E: Authentication failed: Authentication failure

com sudo chroot eu tenho

sudo: no tty present and no askpass program specified

Melhor ideia do que eu?

    
por Cédric Girard 07.12.2011 / 15:29

1 resposta

1

chroot mais é executado como root. Então você tem que dividir seu script em dois, um que está fazendo o teste unitário (myapp-unit-test.sh) e um que será executado como root (myapp-unit-test-chroot.sh).

Em / etc / sudoers, adicione:

www-data ALL=(ALL) NOPASSWD:/path/to/myapp-unit-test-chroot.sh

Em myapp-unit-test-chroot.sh faça algo como:

chroot /new/root sudo -u test-user /path/to/myapp-unit-test.sh

Desta forma, você limitará a parte que está sendo executada como root.

    
por 07.12.2011 / 17:02

Tags