Linux terminalinde bir kök oturumu almanın birçok farklı yolu vardır. Kök ayrıcalıkları elde etmek isteyen yeni başlayan kullanıcıların çoğu, her bir komutun nasıl kök 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
NS su
komutu, sistemin kabukta kullandığı mevcut kullanıcının yerine geçer.
Yazarak herhangi bir kullanıcıya geçebilirsiniz su
ve ondan sonra bir kullanıcı adı ekleme. 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 girerek kök erişimi elde edebilir su
komuttan sonra hiçbir şey belirtmeden.
“su” en iyi, bir kullanıcı sistemdeki kök hesaba doğrudan erişim istediğinde kullanılır. içinden geçmiyor sudo
ya da bunun gibi bir şey. Bunun yerine, kelimenin tam anlamıyla oturum açtığınız için kök 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.
sudo su
Bu komut, root yerine mevcut kullanıcının şifresini sorar.

Aslında sadece koşmakla aynı su
kabukta, önemli bir farktan tasarruf edin. Sisteme doğrudan “kullanıcıları değiştir” demek yerine, “su” komutunu root olarak çalıştırmasını söylüyorsunuz. Ne zaman sudo su
çalıştırıldığında, “.profile”, “.bashrc” ve “/etc/profile” başlatılacak, tıpkı koşmaya benzer su
(veya su root
). Herhangi bir komut çalıştırılırsa sudo
önünde, kök ayrıcalıkları verilir.
“sudo su” ve “su” arasında büyük bir farklılık olmamasına rağmen, sudo su
önemli bir nedenden dolayı hala çok yararlı bir komuttur: Bir kullanıcı bir sistemde root erişimi elde etmek için “su” çalıştırdığında, root şifresini bilmelidir. Kök ile verilir sudo su
mevcut kullanıcının şifresini isteyerek. Bu, güvenliği artıran kök şifresi olmadan kök kazanmayı mümkün kılar.
sudo -i
kullanma sudo -i
ile hemen hemen aynıdır sudo su
bir istisna dışında komut: doğrudan kök kullanıcıyla etkileşime girmez.

Çok gibi sudo su
, NS -i
flag, bir kullanıcının kök hesap parolasını bilmesine gerek kalmadan bir kök ortamı elde etmesini sağlar. sudo -i
kullanmaya da çok benzer sudo su
, çünkü tüm çevresel dosyaları (.profile, vb.) okuyacak ve ortamı kabuğun içine ayarlayacaktır.
“sudo su”dan farkı şudur: sudo -i
kök kullanıcıyla doğrudan etkileşime girmeden kök ve kök ortamı elde etmenin çok daha temiz bir yoludur. Açıklığa kavuşturmak için: ile sudo su
birden fazla kök kullanıyorsun setuid
arka planda komut. Bu, hangi çevresel değişkenlerin tutulacağını ve hangilerinin değiştirileceğini (kök ortama geçerken) bulmayı çok daha zor hale getirir. Bu doğru değil sudo -i
. Bu nedenle, çoğu kişi doğrudan oturum açmadan kök kazanmak için tercih edilen yöntem olarak görüyor.
sudo -s
Bu komut, $SHELL değişkeninizle bir kabuk çağırır.

NS -s
“sudo” komutu için geçiş, mevcut kullanıcı komutlarını yürüten $SHELL değişkenini okur. Bu komut, kullanıcı çalışıyormuş gibi çalışır. sudo /bin/bash
. Sudo -s
“Giriş yapmayan” tarzı bir kabuktur. Gibi bir komuttan farklı olarak sudo -i
veya sudo su
, sistem herhangi bir çevresel dosyayı okumaz. Bir kullanıcı kabuğa çalışmasını söylediğinde sudo -s
, kök kazanır ancak kullanıcıyı veya kullanıcı ortamını değiştirmez. Eviniz kök ev vb olmayacak.

Bu komut en iyi, kullanıcı köke geçmek istemediğinde ancak $SHELL ortam değeriyle etkileşimli bir kabuk istediğinde kullanılır. Yukarıda bahsedilen diğer komutlar, kök erişimi sağlar, ancak kök çevre dosyalarına dokunun ve kullanıcıların köke tam erişime izin verir (bu bir güvenlik sorunu olabilir).
Sıkça Sorulan Sorular
1. Hangi komutu kullanmalıyım?
Her komutun kendi kullanım durumu vardır. Burada önemli olan, her komutun ne yaptığını ve ne zaman kullanılacağını anlamaktır. Durduğu gibi, sudo -i
kök ortamı kazanmanın en pratik, temiz yoludur. Öte yandan, kullananlar sudo -s
kök ortamına dokunma yeteneği olmadan bir kök kabuğu kazanabileceklerini görecekler, bu da ek güvenlik avantajlarına sahip bir şey.
2. Root erişimi sistemime zarar verebilir mi?
Bazı durumlarda, evet. Belirli bir terminal oturumundaki her şey için root’a erişmeniz gerektiğinden kesinlikle emin değilseniz, genellikle sadece yazmak daha iyidir. sudo
Belirli bir komut için köke erişmek istiyorsanız, ardından bir komut gelir. Örneğin, yazarak sudo apt install vlc
Linux’un herhangi bir Debian tabanlı sürümünde, işletim sistemine yalnızca VLC’yi yüklemek için APT paket yöneticisini çalıştırmak için köke erişmesini söyler.
Koşmak için çok önemli bir uyarı sudo -i
veya yazmaya karşı daha önce tartıştığımız başka bir değişken sudo
root olarak çalıştırmak istediğiniz her komuttan önce, birincisinin komut geçmişinizi oturum açmamasıdır. /var/log/auth.log
. Eğer hata yaparsanız, geri dönüp ne yaptığınızı kontrol edemezsiniz, böylece düzeltebilirsiniz. Kök oturumları kaydedilmediğinden, belleğinizin yetersiz kalması gerekir.
3. Bir komuttan önce “sudo” yazdığımda, “sudo su”nun hangi türevini çalıştırıyorum?
Yazarak sudo
bir komutu yürütmek için (yani, çalıştırmak istediğiniz komutla aynı satıra yazıyorsunuz), aslında onu etkileşimli bir kök kabuğu altında çalıştırıyorsunuz. Bu ne olurdu sudo -s
bağımsız komut yapar.
Toplama
Bu listede gerçekten %100 en iyi olan tek bir komut yok. Kullanıcılar komut satırında daha rahat hale geldikçe, kök kazanmanın her yolunu (ve birçoğu vardır) hesaba katmaları ve artıları ve eksileri tartmaları ve buna göre hareket etmeleri gerekecektir. Umarım bu makalenin yardımıyla bu kararların alınması daha kolay olacaktır. Komutlar hakkında daha fazla bilgi edinmek istiyorsanız, bir dizinin içeriğini listelemek için yararlı Linux komutlarıyla ilgili bu makaleyi okuyun.