En un laboratorio de seguridad de la información en el que estoy trabajando, se me ha encomendado la ejecución de varios comandos con una sola llamada a "sistema()" (escrito en C , corriendo en Fedora). ¿Cuál es la sintaxis que me permitirá ejecutar más comandos que a través de system()? (La idea es que podría ejecutar código arbitrario a través de un programa que se ejecuta en un equipo remoto, si el programa interactúa con el sistema operativo a través del sistema() llamada.)Usando un sistema único() Llamada para ejecutar múltiples comandos en C
Es decir:
char command[] = "????? \r\n";
system(command);
menos que esté ejecutando en Windows, es probable que cause problemas en lugar de dar un beneficio del retorno de carro (\ r). Debería poder separar comandos por líneas nuevas, o puntos y comas, como otros han sugerido. –
En términos de seguridad, permitir que programas remotos ejecuten comandos arbitrarios es un proceso complicado, en general. Es menos grave si el programa se ejecuta localmente con los privilegios del usuario remoto; si se ejecuta con algún tipo de privilegios elevados, es grave. –