Sudo ve su komutu arasındaki fark nedir?


12

sudoVe sucommand arasındaki fark nedir ? OS X bunları neden Linux'tan farklı olarak ele alıyor?


1
Linux bir şey olursa bunları OS X'ten farklı bir şekilde ele alır. OS X, Unix sertifikalıdır, bu da belirli bir davranış standardına uygun olduğu anlamına gelir. Linux Unix'e benzer, ancak Unix sertifikalı değildir ve mutlaka Unix standardına uygun değildir. Dolayısıyla, farklılıklar varsa (Aaron Lake'nin cevabında belirtilen kök şifre sorunu dışında), söz konusu Linux dağıtımının uygulayıcıları açısından uyumsuzluk gösterirler.
alesplin

Yanıtlar:


21

OS X , Linux sudoile suaynıdır.

sudoherhangi bir ek seçenek olmadan bir komutu root olarak çalıştıracak bir komuttur. Örneğin:

% touch /newfile
touch: /newfile: Permission denied
% ls -l /newfile
ls: /newfile: No such file or directory
% sudo touch /newfile
% ls -l /newfile 
-rw-r--r--  1 root  wheel  0 Apr 27 11:45 /newfile

suÖte yandan, geçerli kullanıcıyı root'a geçirir (yine ekstra komut olmadan). Aşağıdaki örnekte, sudo susistemimin kök şifresini bilmediğim için çalıştırmam gerekiyor:

% whoami
alake
% sudo su
$ whoami
root

Arasındaki temel fark sudove suolduğu sudo, oysa kök olarak bir komut çalışır suyapar kök. Diğer komut satırı yardımcı programlarına benzer şekilde, her ikisini de kullanmak için bir dizi alternatif yol vardır sudove sueğer ilgileniyorsanız her zaman man <command>örneğin çalıştırabilirsiniz . man sudodaha fazla bilgi almak için.


5
Basit bir dilde terimler sudoas olabilir super user and do. Ek bir nokta olarak, OS X'te, başarılı bir şekilde kimlik doğrulaması yaptıktan sonra, sudo'yu kısa bir süre için parola olmadan (geçersiz kılınmadıkça, varsayılan olarak 5 dakika sudoers) kullanabilirsiniz, daha sonra parolayı tekrar yazmanız gerekir.
binarybob

1
'ek seçenekler olmadan' oldukça önemli bir niteleyicidir ... ikisi de root'tan başka kullanıcı olmanıza izin verir ... ör sudo su -lm _www. web sunucusu kullanıcısı gibi bir kabuğa sahip olmanızı sağlar (komutu root olarak çalıştırarak geçerli bir şifresi yok)
Joe

2
@Joe, bu bilgileri eklemeyi düşündüm ama kısalık için atladım. Açıkladığınız gibi sudo, oldukça sağlam bir yardımcı programdır ve burada temel işlevselliği bile kapsayan hedef kitleyi sudove arasında bir ayrım arayan kafa karıştırır veya bunaltır su.
Aaron Lake

"Sudo ve su arasındaki en önemli fark sudo bir komutu root olarak çalıştırırken, su sizi root yapar" - false, sudo -sshell'i çalıştırır ("root yapar") ve su -c commandkomutu root olarak çalıştırır.
el.pescado

2
Yine kısaca aşk için birçok alternatif kullanım yöntemini atladım sudo. Ayrıca, su -c commandkök parolasını bilmediğiniz için OS X'te varsayılan olarak yapamazsınız. Ancak sudo suşifreyi değiştirebilirsiniz su -c command. Sorunun cevaplandığını hissediyorum ve sudo ve su'nun alternatif kullanımlarına daha fazla dalmaya gerek yoktu. Ancak meraklı kişiler için yazıyı güncelleyeceğim.
Aaron Lake
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.