estoy de acuerdo con esa afirmación, ya que no hay nada acerca de los scripts que los hacen inherentemente insegura. Los scripts de Bash son perfectamente seguros si se siguen algunas pautas simples:
- ¿El script contiene información que otros no deberían poder ver? Si es así, asegúrese de que solo sea legible por el propietario.
- ¿El script depende de datos de entrada de alguna parte? Si es así, asegúrese de que los datos de entrada no se puedan manchar de ninguna manera, o que los datos viciados se puedan detectar y desechar.
- qué importa si los demás eran para tratar de ejecutar el script ? Si es así, como con el primer punto, asegúrese de que nadie pueda ejecutarlo, y preferiblemente no lea de él. chmod 0700 es generalmente una buena idea para las secuencias de comandos que realizan funciones del sistema.
- Y los casos en los que te gustaría una secuencia de comandos para tener un setuid (a través de su intérprete) son extremadamente raros
Los dos puntos que separan un guión de un programa compilado sería que la fuente es visible y que un intérprete lo ejecuta. Siempre y cuando el intérprete no se haya visto comprometido (como por ejemplo tener un pequeño inconveniente), estarás bien.
Al escribir scripts para realizar tareas del sistema, errores tipográficos y errores humanos al escribirlo representan hasta cierto punto un posible fallo de seguridad, pero ese también sería el caso con los programas compilados (y mucha gente tiende a ignore el hecho de que los programas compilados también pueden ser desmontados)
Vale la pena señalar que en la mayoría (si no en todos) los sabores de Linux, la mayoría (si no todos, de hecho, no se puede pensar en ninguno que no lo sean) los servicios se inician a través de un shellscript.
Cuando un script no es legible, no es ejecutable. Setuid en scripts ni siquiera es posible. –