'Sudo [command]' ve 'sudo sh [command] arasındaki fark nedir?


13

Ubuntu 12.04.2 LTS'ye VMware Workstation kurmaya çalışıyorum. Aşağıdaki komutu yürütürsem:

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

bir kerede biter ve kurulum asla başlamaz.

Bu komutu yürütürsem:

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

Yükleyici başarıyla başlatılabilir.

Bu neden bir fark yaratıyor?



Yanıtlar:


13

Dosya yürütülebilir olarak işaretlenmemişse, yürütmek için bir komut kabuğu yorumlayıcısı çağırmanız gerekir.

Örnekler:

  • sudo sh fooAçılan foo ile shkullanarak sudo ayrıcalıkları.

  • sudo bash fooAçılan foo ile bashkullanarak sudo ayrıcalıkları.

  • sh fooAçılan foo ile shsizin kullanıcının yetkilerini kullanarak.

  • bash fooAçılan foo ile bashsizin kullanıcının yetkilerini kullanarak.

Bir dosyayı yürütülebilir olarak işaretlerseniz, dosyayı çağırmanız yeterlidir ./foove bu şekilde işaretlendiğinden, tanımlanan komut kabuğu yorumlayıcısıyla okunur ve bir tanesini tanımlamaya gerek kalmadan yürütülür.

ls -Fdosyaları listeler ve yürütülebilir dosyaları * ile işaretler .

Bir dosyada yürütme bitini etkinleştirmek (ve bu şekilde yürütülebilir hale getirmek) için komutu kullanın chmod +x foo.

Kullandığınız dosyayı çalıştırılabilir yapmak için şu komutu kullanırsınız:

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

ve sonra da

sudo sh ./VMware-Workstation-9.0.1-894247.x86_64.bundleya da sadece yazarak sudo ./VMware-Workstation-9.0.1-894247.x86_64.bundle.


12

Sh, komutları çalıştırmak için bir kabuktur, bu nedenle sh'in sudo ile yürütülmesi size bir kök kabuk verir. Bu, o kabuktaki tüm komutların kök olarak yürütüldüğü anlamına gelir. Benim tahminim komut dosyası root gerektiren başka bir şey yürütür, ancak sudo sh değil sadece sudo kullandığınızda, başka bir şey normal bir kullanıcı olarak yürütülür, ancak sh ile her şey kök olarak yürütülür.


Cevabınız için teşekkürler. İtibarım 15'ten az, bu yüzden cevabını veremiyorum. Ama ,,, teşekkürler!
Landy

1
Kabul edilen cevabın biraz daha detayı var ama bence bu gerçekten insanların farkında olması gereken önemli bir nokta.
Christopher Hunter
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.