J'essaie d'exécuter une commande via PHP pour un projet et de rediriger la sortie vers un fichier.

Sur PHP, je crée une chaîne et j'exécute la fonction shell_exec() avec la chaîne en paramètre :

$command = "my_commands";
$output = shell_exec($command);
echo $output;

Pour pouvoir exécuter les choses en tant que root via PHP et shell_exec, j'utilise ce qui suit :

bash -lc 'echo **my_linux_password** | /usr/bin/sudo -S **my_commands** &'

Un exemple de ceci est le suivant:

bash -lc 'echo **my_linux_password** | /usr/bin/sudo ... &' 2>&1 | tee /home/kali/Desktop/logs/file.txt

1
drowsy99 10 nov. 2020 à 19:46

1 réponse

Meilleure réponse

Vous exécutez la commande sudo en arrière-plan, de sorte que le processus bash "externe" ne reçoit pas la sortie pour la redirection.

Vous devrez faire quelque chose comme

bash -lc 'echo **my_linux_password** | /usr/bin/sudo sh -c "my_command | tee /home/kali/Desktop/logs/file.txt 2>&1" &'

Et vous êtes maintenant fermement en train de citer l'enfer.

0
glenn jackman 10 nov. 2020 à 19:06