“Sudo -s” aslında ne yapar?


25

Ubuntu 10.04 kullanıyorum.

Terminalde " sudo -s " komutunu çalıştırdıktan sonra komut isteminin değiştiğini fark ettim .

" XXX @ XXX "

için

" root @ XXX ",

kök ayrıcalığına dönüşmüş görünüyor.

Ama burada "sudo" komutunun belgelerini kontrol ettiğimde, "sudo-s" hikayesinin bir başka hikayesini anlatıyor, birileri bana " sudo-s " öğesinin tam olarak ne yaptığını açıklayabilir mi?


6
Sen bu aşkın sormalısınız askubuntu.com

7
Neden askubuntu.com? sudoUbuntu'ya özgü değil ...
Dave Sherohman

Yanıtlar:


9

İkisi gerçekten tutarsız değil - sudokomut her zaman kullanıcıyı kök olarak veya -uanahtarla belirttiğiniz kullanıcı olarak değiştirir. Tek -syapmanız gereken , bu kullanıcı olarak bir kabuk başlatmak için bir kısayol sağlamaktır. Bu gerçekten eşdeğerdir:

sudo $SHELL

Bunun dışında, ayarlanmadığı /bin/shtakdirde büyük olasılıkla geri dönüş veya başka bir şey olacaktır SHELL.


6

sudo -s$SHELLortam değişkeninizde superuser / root olarak belirtilen kabuğu çalıştırır . Kullanarak başka bir kullanıcı belirleyebilirsiniz -u.

$SHELLOrtam değişkeni kullanıcının varsayılan giriş kabuğu yolunu içerir. Varsayılan kabuk programı için gerçek ayar genellikle içindedir etc/passwd. Şu anki oturumunuzda ne yaptığınıza bağlı olarak, $ SHELL değişkeni şu anda kullanmakta olduğunuz kabuk programını içermeyebilir. Örneğin, otomatik olarak zsh ile giriş yaparsanız, ancak bash'ı çağırırsanız, $ SHELL değişmez /bin/zsh.

Geçerli kullanıcı ve kabuk programını göster: echo $(whoami) is logged in and shell is $0

  • whoami Kullanıcının çalıştığı kullanıcı adını yazdırır.
  • $0 o anda çalışan programın adını / yolunu içerir (bu durumda kabuk programı).

3

Kılavuzdan:

sudo, sudoers dosyasında belirtildiği şekilde izin verilen kullanıcının süper kullanıcı olarak bir komutu veya başka bir kullanıcıyı yürütmesine izin verir.

-s Kabuk, ayarlanmışsa SHELL ortam değişkeni tarafından belirtilen kabuğu veya passwd'de (5) belirtilen kabuğu çalıştırır.

Daha ciddi olarak, sudo -'ler kabuk ortam değişkenini çalıştırır. Herhangi bir değişken eklemediğiniz için passwd'de belirtilen şekilde çalışır ve sizi root olarak bağlar.


1
Bir kullanıcı sağlamadıysanız, varsayılan olarak root olarak çalıştığı kılavuzdan belli değildir. Bunu -uöğrenmek için seçeneğin açıklamasını okumak zorunda kalacaksınız. Fakat aşina olmayan biri sudoiçin bakmayı bilemeyeceklerdi -u.
WISBucky


0

Geçerli kabuğun üstüne kabuğun başka bir örneğini oluşturuyor gibi geliyor, ancak kök ayrıcalıkları var. Eminim ki sudo -seğer exit yazarsanız, orijinal kabuğa geri dönersiniz.


-1

sudo -s, muhtemelen geçerli kimliğinizi onaylamanızı isteyerek [see / etc / sudoers] ön onayını verdiğiniz bir komutu çalıştırmanıza izin verir.

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.