Qual è la differenza tra 'sudo [comando]' e 'sudo sh [comando]?


13

Sto cercando di installare VMware Workstation nel mio Ubuntu 12.04.2 LTS. Se eseguo il seguente comando:

sudo ./VMware-Workstation-9.0.1-894247.x86_64.bundle

termina immediatamente e l'installazione non inizia mai.

Se eseguo questo comando:

sudo sh ./VMware-Workstation-9.0.1-894247.x86_64.bundle

Il programma di installazione può essere avviato correttamente.

Perché questo fa la differenza?



Risposte:


13

Se il file non è contrassegnato come eseguibile, è necessario chiamare un interprete della shell dei comandi per eseguirlo.

Esempi:

  • sudo sh fooaprirà foo con l' shutilizzo dei privilegi di sudo .

  • sudo bash fooaprirà foo con l' bashutilizzo dei privilegi di sudo .

  • sh foosi aprirà foo con shutilizzando i privilegi dell'utente.

  • bash foosi aprirà foo con bashutilizzando i privilegi dell'utente.

Se si contrassegna un file come eseguibile, è sufficiente chiamarlo con ./fooe poiché è contrassegnato come tale, verrà letto con l'interprete della shell dei comandi definito ed eseguito senza la necessità di definirne uno.

ls -Felencherà i file e contrassegnerà gli eseguibili con * .

Per abilitare il bit di esecuzione su un file (e renderlo eseguibile come tale) utilizzare il comando chmod +x foo.

Nel tuo caso per rendere il file che stai eseguendo eseguiresti il ​​comando

chmod +x VMware-Workstation-9.0.1-894247.x86_64.bundle

e quindi sarai in grado di eseguirlo con entrambi

sudo sh ./VMware-Workstation-9.0.1-894247.x86_64.bundleo semplicemente digitando sudo ./VMware-Workstation-9.0.1-894247.x86_64.bundle.


12

Sh è una shell per eseguire comandi, quindi eseguire sh con sudo ti dà una shell di root. Ciò significa che tutti i comandi in quella shell vengono eseguiti come root. La mia ipotesi è che lo script esegua qualcos'altro che ha bisogno di root, tuttavia quando usi solo sudo non sudo sh, qualcos'altro viene eseguito come un normale utente, tuttavia con sh tutto verrà eseguito come root.


Grazie per la tua risposta. La mia reputazione è inferiore a 15, quindi non posso votare la tua risposta. Ma ,,, grazie!
Landy l'

1
La risposta accettata ha qualche dettaglio in più, ma penso che questo sia davvero un punto chiave di cui le persone dovrebbero essere consapevoli.
Christopher Hunter,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.