L'uso di un wrapper per eseguire uno script è una buona pratica?
In tal caso, la seguente serie di wrapper / script può essere considerata sicura:
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;
}
lo script
IFS=""
/bin/echo -n "[Whoami]: "
/usr/bin/whoami
/bin/echo -n "[ls /root]: "
/bin/ls /root
Il file script
non contiene alcuno shebang. Cambierà qualcosa se ne avessi aggiunto uno?
Nel Wrapper, avrei potuto semplicemente chiamare lo script perché eseguivo qualsiasi script Linux invece di inserire il suo contenuto in una shell?