Sorunuzda belirttiğiniz gibi, temel fark çevre.
sudo su - vs. sudo -i
Durumunda sudo su -bunun bir giriş kabuğu, yani /etc/profile, .profileve .bashrcyürütülür ve root çevre ile root ana dizininde bulacaksınız.
sudo -ihemen 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 susudokomutu ile çağırır su. Bash etkileşimli giriş olmayan kabuk olarak adlandırılır. Yani bashsadece 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$SHELLdeğişkeni okur ve içeriği yürütür. Eğer $SHELLiçeren /bin/bashdiline doladığı sudo /bin/bash, yani /bin/basholmayan giriş kabuğu olarak başlatılır, böylece tüm nokta dosyaları infaz değildir, ancak bashkendisi okur. bashrcarayan 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ç
-iBayrak eklendi sudoiçinde 2004 benzer bir işlevi sağlamak için, sudo su -böylece sudo su -için şablon oldu sudo -ive 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 .sudosudo
Yani anlamı sudokötüye kullanıldı. sudokullanıcıyı, kök ayrıcalıklarının kullanımını en aza indirgemeye teşvik ediyordu.
Şimdi sahip olduğumuz şey, sudodaha 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 sudogereksiz 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 sudoher zaman yanımda bir dikendi, zamandan beri tanıtılmıştı ve sudomü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 sumahrum kalır ve tamamen yer sudodeğiştirir su.
Bu nedenle, eski bir araca güvenmek yerine sudoiç mekanizmalarını ( -s, -i) kullanmak en iyisi olacağını düşünüyorum su.
ubuntuKullanı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.