Estoy tratando de instalar VMware Workstation en mi Ubuntu 12.04.2 LTS. Si ejecuto el siguiente comando:
sudo ./VMware-Workstation-9.0.1-894247.x86_64.bundle
termina de una vez y la instalación nunca comienza.
Si ejecuto este comando:
sudo sh ./VMware-Workstation-9.0.1-894247.x86_64.bundle
El instalador se puede iniciar con éxito.
Por qué esto hace una diferencia?

Respuestas:
Si el archivo no está marcado como ejecutable, debe llamar a un intérprete de comandos para ejecutarlo.
Ejemplos:
sudo sh fooabrirá foo con elshuso de privilegios de sudo .sudo bash fooabrirá foo con elbashuso de privilegios de sudo .sh foose abrirá foo conshel uso de los privilegios del usuario.bash foose abrirá foo conbashel uso de los privilegios del usuario.Si marca un archivo como ejecutable, solo necesita llamarlo
./fooy, dado que está marcado como tal, se leerá con el intérprete de shell de comandos definido y se ejecutará sin la necesidad de definir uno.ls -Fenumerará archivos y marcará ejecutables con * .Para habilitar el bit de ejecución en un archivo (y hacerlo ejecutable como tal) use el comando
chmod +x foo.En su caso, para hacer que el archivo que está utilizando sea ejecutable, entonces usaría el comando
chmod +x VMware-Workstation-9.0.1-894247.x86_64.bundley luego podrás ejecutarlo con
sudo sh ./VMware-Workstation-9.0.1-894247.x86_64.bundleo simplemente escribiendosudo ./VMware-Workstation-9.0.1-894247.x86_64.bundle.fuente
Sh es un shell para ejecutar comandos, por lo que ejecutar sh con sudo le proporciona un shell raíz. Esto significa que todos los comandos en ese shell se ejecutan como root. Supongo que el script ejecuta otra cosa que necesita root, sin embargo, cuando solo usa sudo no sudo sh, esa otra cosa se ejecuta como un usuario normal, sin embargo, con sh todo se ejecutará como root.
fuente