Sorunuzda belirttiğiniz gibi, temel fark çevre.
sudo su -
vs. sudo -i
Durumunda sudo su -
bunun bir giriş kabuğu, yani /etc/profile
, .profile
ve .bashrc
yürütülür ve root çevre ile root ana dizininde bulacaksınız.
sudo -i
hemen hemen aynı olduğunu (ilk giriş taklit) seçeneği bir giriş kabuğu olarak hedef kullanıcının parolası veritabanı girişinin tarafından belirtilen kabuk çalıştırır. Bu oturum özgü kaynak gibi dosyaları anlamına gelir , ya da okuma ve kabuk tarafından çalıştırılacaktır.sudo su -
-i
.profile
.bashrc
.login
sudo su
vs. sudo -s
sudo su
sudo
komutu ile çağırır su
. Bash etkileşimli giriş olmayan kabuk olarak adlandırılır. Yani bash
sadece yürütür .bashrc
. Köke geçtikten sonra hala aynı dizinde olduğunuzu görebilirsiniz:
user@host:~$ sudo su
root@host:/home/user#
sudo -s
$SHELL
değişkeni okur ve içeriği yürütür. Eğer $SHELL
içeren /bin/bash
diline doladığı sudo /bin/bash
, yani /bin/bash
olmayan giriş kabuğu olarak başlatılır, böylece tüm nokta dosyaları infaz değildir, ancak bash
kendisi okur. bashrc
arayan kullanıcının Ortamınız aynı kalıyor. Eviniz kökün evi olmayacak. Demek kök, ama arayan kullanıcının ortamında.
Sonuç
-i
Bayrak eklendi sudo
içinde 2004 benzer bir işlevi sağlamak için, sudo su -
böylece sudo su -
için şablon oldu sudo -i
ve bunun gibi çalışmak gerekiyordu. Çevre önemli olmadıkça bence hangisini kullandığınız önemli değil.
İlave
Burada belirtilmesi gereken temel bir nokta, daha yüksek ayrıcalıklara sahip tek bir komutsudo
çalıştırmak ve daha sonra bu ayrıcalıkları orijinal olanlara bırakmak için tasarlanmıştır. Asla kullanıcıyı gerçekten değiştirip kök kabuğunu açık bırakmak istemedi . Zaman içinde, bu tür mekanizmalarla genişletildi, çünkü insanlar neden her komutun önünde kullanıldıkları konusunda sinirlendiler .sudo
sudo
Yani anlamı sudo
kötüye kullanıldı. sudo
kullanıcıyı, kök ayrıcalıklarının kullanımını en aza indirgemeye teşvik ediyordu.
Şimdi sahip olduğumuz şey, sudo
daha popüler hale geliyor. Neredeyse tüm tanınmış linux dağıtımlarına entegre edilmiştir. Başka bir kullanıcı hesabına geçmek için kullanılan orijinal araçtır su
. Eski bir okul için * nix usta gibi böyle bir şey sudo
gereksiz görünebilir. Karmaşıklık ekler ve Microsofts os-ailesinden bildiğimiz mekanizmalara daha muhtemel davranır ve bu nedenle * nix sistemlerinin sadeliği felsefesine aykırıdır.
Gerçekten usta değilim, ama bence sudo
her zaman yanımda bir dikendi, zamandan beri tanıtılmıştı ve sudo
mümkünse her zaman kullanımı için çalıştım . Ben kullanmak konusunda isteksizim sudo
. Tüm sistemlerimde kök hesap etkindir. Fakat işler değişir, belki zaman gelir, ne zaman su
mahrum kalır ve tamamen yer sudo
değiştirir su
.
Bu nedenle, eski bir araca güvenmek yerine sudo
iç mekanizmalarını ( -s
, -i
) kullanmak en iyisi olacağını düşünüyorum su
.
ubuntu
Kullanıcıların standart olmasını engelleyen bu fantezi sistemleri hiç anlamadımsu -
. Sorun yarattılar ve şimdi nasıl çözüleceği konusunda sonsuz tartışmalar var.