Tire işareti olan ve olmayan “su” arasındaki fark nedir?


87

Ben Linux terminaline oldukça yeni ve ben arasında ne fark emin değilim sukısa çizgi ile ve sutire olmadan örnek için, geçerli: su - usernamevs. su username.

Dokümantasyona baktım ama orada bundan bahsedilmedi. Lütfen birisi bana yardımcı olabilir mi?


"giriş kabuğu" genellikle etkileşimli kabuk anlamına gelir. Bu, sadece bir betiği çalıştıran ve çıkan bir kabuktur.
Shahbaz

6
Şu bağlantıda bulunduğunuz manpage sayfasında : " -, -l, --login: kabuğu bir giriş kabuğu yap "
ArjunShankar

1
google bile gerekmez, sadece yazın su --help.
Sanat Shayderov

1
Dikkat çekici: Bu, özellikle yeni bir giriş kabuğu başlatmak için hipen kullanmadan root kullanmaya başladığınızda faydalı olur, $PATHgüncellenmez ve bu nedenle /sbinve/usr/sbin
Garrett’de

Yanıtlar:


85

Arasındaki fark, "-" ve "hayır tire" ikincisi olmasıdır tutar mevcut ortamı (değişkenleri, vs); İlki yeni bir ortam yaratır (kendinizin değil, gerçek kullanıcının ayarlarıyla).

https://wiki.archlinux.org/index.php/Su

Tire'nin iki etkisi vardır:

1) o kullanıcı olarak giriş yaparak mevcut dizinden yeni kullanıcının giriş dizinine (örneğin kök kullanıcı durumunda / root'a) geçer.

2) çevresel değişkenleri ~ / .bashrc tarafından belirtilen şekilde yeni kullanıcınınkilerle değiştirir. Diğer bir deyişle, su için ilk argüman bir tire ise, geçerli dizin ve ortam, yeni bir kullanıcı gerçekten yeni bir oturumda oturum açtıysa (yalnızca mevcut bir oturumu devralmak yerine) beklenebilecek şekilde değiştirilecektir.


Bu site -> admon.org/difference-between-login-shell-and-non-login-shell , tire olmadan kullanıldığında / etc / profile ve ~ / .bash_profile dosyalarının çalıştırılmadığını söylüyor. Bu iki dosyanın kullanıcı ortamında önemi nedir?
user574183

2
Bu iki şey dosyalardır set kullanıcı ortamı :) Değil onları infaz anlamına tutarak orijinal ortamı. Bunları yürütmek ("-" kullanarak) , ortamınızı "dava ettiğiniz" kullanıcı ile aynı yapmak demektir . Tire kullanmak genellikle istediğinizdir - "su" kullandığımda alışkanlık olarak "-" kullanırım.
paulsm4

İcra emri gerçekten önemli mi? Bunu soruyorum çünkü o sitede / etc / bashrc ~ / .bashrc dosyasındaki iki dosyanın oturum açma kabuğunda olmadığı zaman ters sırada çalıştırıldığından bahsettiler. Biri bana yardım etsin lütfen
user574183

1
Tabii ki @ user574183, örneğin biri bir şey ayarladıysa, diğeri bir şeyi ayarladıysa ya da başka bir şeyi ayarladıysa
fikr4n

3

su -root için bir giriş kabuğu başlatır. Normal bir kabuğa olan farklar için, örneğin bu siteye bakın .


2
Bu doğru, ama soru değil :)
paulsm4

Bu yanlış, su ile bir çizgi çalıştırabilir ve farklı bir kullanıcı için bir kabuk başlatmasını sağlayabilirsiniz. Aşağıdakini uygulayın ve çıktısını görünsudo su - "testuser" -c "whoami"
David Hergert 10:15

@DavidHergert Yep ve bir kullanıcı adı olmadan root için bir kabuk açar.
Lars Kotthoff

@LarsKotthoff - tamam, üzgünüm, ifade edildiği gibi, bir kullanıcı varsayılan olarak root dışına çıkması gerçeğini değil, onu bir kök kabuğu yapan çizgi gibi ses çıkardı. Yerel sakinim SA bile bu konuda kafamı karıştırdı. :)
David Hergert 12:15,
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.