Lo que intentas hacer no es posible de esa manera.
Tenga en cuenta que siempre hay dos lados: El lado del cliente y el lado del servidor. ¿El script está en el ordenador del cliente o en el servidor?
Si está en el cliente: Usted, como visitante, sólo está viendo un sitio web HTML. onClick
sólo podrá lanzar JavaScript (u otros lenguajes de scripting ), pero no cualquier script de shell arbitrario que resida en su ordenador. Los scripts HTML sólo se ejecutan en el navegador y sólo pueden hacer cosas limitadas. Lo más importante es que no pueden interactuar con tu ordenador.
Piénsalo: ¿Cómo podría el navegador saber cómo abrir el archivo? ¿No crees que esto también sería un problema de seguridad: un sitio web sencillo que desencadena la ejecución de scripts en el ordenador de un cliente? Una alternativa sería ejecutar un applet de Java, si quieres que se ejecute código en el cliente, pero esto no es exactamente lo mismo y es algo realmente complicado. No creo que sea necesario explicar esto en detalle.
Si el script está en el servidor: Si quieres ejecutar un script en el lado del servidor y que el usuario desencadene su ejecución, entonces necesitas usar un lenguaje de programación del lado del servidor. El simple HTML no servirá, porque es más o menos un archivo estático. Si quiere interactuar con el servidor, podría por ejemplo utilizar PHP .
Tiene la función onClick('rm -rf /home/user')
para ejecutar un script de línea de comandos que se almacena en el servidor web. Así que básicamente, podrías escribir exec
y se ejecutaría el script en el servidor.
Sin embargo, sólo poner esto en exec('/path/to/name.sh');
no es suficiente aquí. Si aún no sabes sobre PHP y la programación web del lado del servidor, tal vez quieras leer algunos tutoriales primero y luego volver con una pregunta más específica.
Si tiene un archivo php con el comando onClick
apropiado, asegúrese de que el script tiene permisos de ejecución establecidos no sólo para el usuario sino también para el grupo en el que está el servidor web, así que en el caso más simple sólo exec(...)
.
En caso de problemas comprueba el valor de retorno del script con 777
para ver si hay algún error.
También puedes ejecutar el script desde la línea de comandos y no desde el navegador con echo exec(...);
.