¿Es una buena práctica usar un contenedor para ejecutar un script?
En tal caso, el siguiente conjunto de envoltorio / script puede considerarse seguro:
wrapper.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
int main(void)
{
if (setuid(geteuid()) != 0)
{
fputs(strerror(errno), stderr);
return EXIT_FAILURE;
}
system("cat script | /bin/bash");
return EXIT_SUCCESS;
}
script
IFS=""
/bin/echo -n "[Whoami]: "
/usr/bin/whoami
/bin/echo -n "[ls /root]: "
/bin/ls /root
El archivo script
no contiene ningún shebang. ¿Cambiaría algo si hubiera agregado uno?
En el Wrapper, ¿podría simplemente haber llamado al script ya que ejecutaría cualquier script de Linux en lugar de incluir su contenido en un shell?