Belge

Su, Sudo Su, Sudo -s ve Sudo -i arasındaki farklar

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.

Linuxsudo Suprompt

su yazıp ardından bir kullanıcı adı ekleyerek herhangi bir kullanıcıya geçebilirsiniz..

Linuxsudo Switchuser

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.

Linuxsudo Suc

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.

Linuxsudo Sudosu

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.

Linuxsudo Sudoi

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.

Linuxsudo Sudos

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.

Linuxsudo Shellswitch

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.

Linuxsudo Commands

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.