Linux terminalinde bir root oturumu almanın birçok farklı yolu vardır. Root ayrıcalıkları elde etmek isteyen yeni başlayan kullanıcıların çoğu, her bir komutun nasıl root erişimi kazanabileceğini, nasıl farklı olduklarını ve bu farklılıkların ne zaman önemli olduğunu bilmeyebileceğinden, bu biraz kafa karışıklığı yaratabilir. Burada bir terminalde root erişimi elde etmek için kullanılan birçok farklı komutun her birini ayırıyoruz, nasıl root kazandıklarını, ne zaman kullanacaklarını ve aradaki her şeyi açıklıyoruz.
su
su komutu, geçerli kabukta mevcut kullanıcıyı root ile değiştirir.
su yazıp ardından bir kullanıcı adı ekleyerek herhangi bir kullanıcıya geçebilirsiniz..
Bu, sisteme geçerli kullanıcıyı belirtilen kullanıcıya değiştirmesini (ve esasen oturumunu kapatmasını) söyleyecektir. Alternatif olarak, su komutu, komuttan sonra herhangi bir şey belirtmeden su girerek root erişimi elde edebilir.
su en iyi, bir kullanıcı sistemdeki root hesaba doğrudan erişim istediğinde kullanılır. Sudo veya benzeri bir şeyden geçmez. Bunun yerine, kelimenin tam anlamıyla oturum açtığınız için root kullanıcının parolasını girmeniz istenir. Ayrıca, root erişimi elde etmenin diğer yolları, root home dizinine ve root ortamına da erişim sağlama avantajına sahip değildir.
su -c
Bu komut, diğer komutları doğrudan root kullanıcıya iletir.
Bir komuttan önce sudo yazmaya benzer şekilde su -c, bir komutu root kullanıcı olarak çalıştırır. Komutu basitçe yazmak yerine, onu tırnak içine almanız gerekecek.
Bu, yükseltilmiş ayrıcalıklarla terminaliniz üzerinden bir komut çekmenin hızlı bir yoludur. Sudo bir şekilde kullanılamıyorsa (Arch Linux gibi dağıtımlarda önceden yüklenmiş olarak gelmiyorsa) veya bozuk olduğu için düzgün çalışmıyorsa çok kullanışlıdır.
Bir şeyi doğrudan root’a ilettiğiniz için, kullanıcı ve root şifreleriniz farklıysa, kimlik doğrulaması için root şifrenizi yazmanız gerekir.
sudo su
Bu komut, root yerine mevcut kullanıcının şifresini ister.
Temelde, önemli bir fark dışında, kabukta sadece su çalıştırmakla aynıdır. Sisteme doğrudan “kullanıcıları değiştirmesini” söylemek yerine, süper kullanıcı ayrıcalıklarıyla su komutunu çalıştırmasını söylüyorsunuz. sudo su çalıştırıldığında, “.profile”, “.bashrc” ve “/etc/profile” başlatılacaktır, tıpkı su (veya su root) çalıştırmaya benzer. Önünde sudo ile herhangi bir komut çalıştırılırsa, ona kök ayrıcalıkları verilir.
sudo su ve su arasında büyük bir farklılık olmamasına rağmen, birincisi önemli bir nedenden dolayı hala çok kullanışlı bir komuttur – bir kullanıcı bir sistemde root erişimi elde etmek için su çalıştırdığında, root şifresini bilmelidir. Mevcut kullanıcının şifresi istenerek sudo su ile root verilir. Bu, root şifresi olmadan root kazanmayı mümkün kılar.
sudo -i
sudo -i kullanımı, bir istisna dışında sudo su komutuyla hemen hemen aynıdır: root kullanıcı ile doğrudan etkileşime girmez.
Sudo su’ya çok benzeyen -i bayrağı, kullanıcının root hesap parolasını bilmesine gerek kalmadan bir root ortamı elde etmesine olanak tanır. sudo -i ayrıca sudo su kullanmaya çok benzer – tüm çevresel dosyaları (“.profile” vb.) okur ve ortamı kabuğun içine ayarlar.
Sudo su’dan farkı, sudo -i’nin root kullanıcıyla doğrudan etkileşime girmeden root ve root ortamı elde etmenin çok daha temiz bir yoludur.
Açıklığa kavuşturmak için – sudo su ile arka planda birden fazla root setuid komutu kullanıyorsunuz. Bu, hangi çevresel değişkenlerin tutulacağını ve hangilerinin değiştirileceğini (root ortama geçerken) bulmayı çok daha zor hale getirir. Bu, sudo -i ile doğru değildir. Bu nedenle, çoğu kişi doğrudan oturum açmadan root kazanmak için tercih edilen yöntem olarak görüyor.
Daha basit bir dille: sudo -i, root kullanıcısı için “home” klasörü olan “/root” klasörünüzde size “temiz” bir root girişi verecektir.
sudo -s
Bu komut, $SHELL değişkeninizle bir kabuk çağırır.
sudo komutu için -s anahtarı, geçerli kullanıcı komutlarını yürüten $SHELL değişkenini okur. Bu komut, kullanıcının geldiği kabuk bash ise, kullanıcı sudo /bin/bash çalıştırıyormuş gibi çalışır.
Bizim durumumuzda, sudo -s bize balık etkileşimli kabuğunu verdi çünkü daha önce fish’i varsayılan kabuğumuz olarak kurduk, bu yüzden sanki sudo /usr/bin/fish çalıştırmış gibi olurduk.
Sudo -s, “giriş yapmayan” bir kabuktur. Sudo -i veya sudo su gibi bir komutun aksine, sistem herhangi bir çevresel dosyayı okumaz. Bir kullanıcı kabuğa sudo -s çalıştırmasını söylediğinde, root hakkı kazanır ancak kullanıcı ortamını değiştirmez.
Bu komut en iyi, kullanıcı root geçmek ancak aynı kabuk ortamını korumak istediğinde kullanılır. Örneğin, bir fish betiği çalıştırmak ve çoğu dağıtımda sıklıkla aldığı varsayılan bash kabuğuna zorlanmak isteyebilirsiniz.
Yukarıda ele alınan diğer komutlar kök erişimi sağlar, ancak aynı zamanda dağıtımın root için sahip olduğu kabuk ve ortam değişkenlerini de verir.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.