Sözdizimi
su [-] [-flm] [login [args]]
Açıklama
su aracı, PAM aracılığıyla uygun kullanıcı kimlik bilgilerini talep eder ve bu kullanıcı kimliğine (varsayılan kullanıcı süper kullanıcıdır) geçiş yapar. Ardından bir kabuk çalıştırılır.
PAM, su(1) aracının kullanacağı politikayı belirlemek için kullanılır. Özellikle, varsayılan olarak yalnızca “admin” veya “wheel” gruplarındaki kullanıcılar UID 0 (“root”) kullanıcısına geçiş yapabilir. Bu grup gereksinimi, /etc/pam.d/su dosyasındaki “pam_group” bölümü düzenlenerek değiştirilebilir. Bu ayarın nasıl değiştirileceğine dair ayrıntılar için pam_group(8) kılavuzuna bakın.
Varsayılan olarak, USER, HOME ve SHELL hariç olmak üzere ortam değiştirilmez. HOME ve SHELL, hedef kullanıcının varsayılan değerlerine ayarlanır. USER, hedef kullanıcının kullanıcı kimliği 0 olmadığı sürece hedef kullanıcıya ayarlanır, 0 olması durumunda ise değiştirilmez. Çağrılan kabuk, hedef kullanıcıya ait olan kabuktur. Bu, su komutunun geleneksel davranışıdır.
Seçenekler aşağıdaki gibidir:
-f: Çağrılan kabuk csh(1) ise, bu seçenek kabuğun “.cshrc” dosyasını okumasını engeller.-l: Tam bir oturum açma (login) simülasyonu yapar. HOME, SHELL, PATH, TERM ve USER hariç ortam değişkenleri atılır. HOME ve SHELL yukarıda belirtildiği gibi değiştirilir. USER hedef kullanıcıya ayarlanır. PATH “/bin:/usr/bin” olarak ayarlanır. TERM mevcut ortamınızdan içe aktarılır. Çağrılan kabuk hedef kullanıcının kabuğudur ve su, hedef kullanıcının ev dizinine geçiş yapar.(harf yok) -l seçeneği ile aynıdır.-m: Ortamı değiştirmeden bırakır. Çağrılan kabuk sizin oturum açma kabuğunuzdur ve hiçbir dizin değişikliği yapılmaz. Bir güvenlik önlemi olarak, eğer hedef kullanıcının kabuğu standart olmayan bir kabuksa (getusershell(3) tarafından tanımlandığı gibi) ve çağıran kullanıcının gerçek UID'si sıfırdan farklıysa su başarısız olur.
-l (veya -) ve -m seçenekleri birbirini dışlar; belirtilen son seçenek önceki seçeneklerin üzerine yazar.
Komut satırında isteğe bağlı bağımsız değişkenler (args) sağlanırsa, bunlar hedef kullanıcının oturum açma kabuğuna aktarılır. Hedef kullanıcı adından önceki tüm komut satırı bağımsız değişkenlerinin doğrudan su tarafından işlendiğini, hedef kullanıcı adından sonraki her şeyin ise oturum açma kabuğuna aktarıldığını unutmayın.
Varsayılan olarak (istem bir başlangıç dosyası tarafından sıfırlanmadığı sürece), süper kullanıcı istemi, kişiye sahip olduğu muazzam gücü hatırlatmak amacıyla “#” olarak ayarlanır.
Ortam
su tarafından kullanılan ortam değişkenleri:
HOME Yukarıda belirtildiği gibi değiştirilmedikçe, gerçek kullanıcı kimliğinin varsayılan ev dizini.
PATH Yukarıda belirtildiği gibi değiştirilmedikçe, gerçek kullanıcı kimliğinin varsayılan arama yolu.
TERM Değiştirilen kullanıcı kimliği için korunabilecek terminal türünü sağlar.
USER Kullanıcı kimliği 0 (root) olmadığı sürece, bir su işleminden sonra kullanıcı kimliği her zaman etkin kimliktir (hedef kullanıcı kimliği).
Dosyalar
/etc/pam.d/su su için PAM yapılandırması.
Örnekler
su -m operator -c poweroff
operator kullanıcısı olarak bir kabuk başlatır ve poweroff komutunu çalıştırır. Gerçek
UID değeriniz 0 olmadığı sürece size operator kullanıcısının şifresi sorulacaktır.
Varsayılan olarak “operator” kullanıcısının geçerli bir kabuğu olmadığından -m
seçeneğinin gerekli olduğunu unutmayın. Bu örnekte -c seçeneği “operator”
kullanıcısının kabuğuna aktarılır ve su için bir bağımsız değişken olarak yorumlanmaz.
su -m operator -c 'shutdown -p now'
Yukarıdakiyle aynıdır, ancak hedef komut birden fazla kelimeden oluşur ve bu nedenle kabuğa
aktarılan -c seçeneğiyle kullanılmak üzere tırnak içine alınmıştır. (Çoğu kabuk, -c seçeneğine
verilen bağımsız değişkenin tek bir kelime olmasını bekler).
su -l foo
foo kullanıcısı için bir oturum açma simülasyonu yapar.
su - foo
Yukarıdakiyle aynı.
su - root için bir oturum açma simülasyonu yapar.
Ayrıca Bakınız
csh(1), sh(1), group(5), passwd(5), environ(7), pam_group(8)
Tarihçe
Bir su komutu ilk olarak Sürüm 1 AT&T UNIX'te yer almıştır.