Sudo hangi kullanıcının şifresini ister?


10
$ ls -l /usr/bin/sudo
-rwsr-xr-x 1 root root 136808 Jul  4  2017 /usr/bin/sudo

yani sudoherhangi bir kullanıcı tarafından çalıştırılabilir sudove set-user-id biti ayarlandığından, çalışan herhangi bir kullanıcı işlemin etkin kullanıcı kimliği olarak root'a sahip /usr/bin/sudoolur.

Gönderen https://unix.stackexchange.com/a/11287/674

sudo ve su arasındaki en görünür fark, sudo'nun kullanıcının parolasını ve su'nın da root parolasını gerektirmesidir.

  1. Hangi kullanıcının şifresi sudoisteniyor? Kullanıcı sürecin gerçek kullanıcı kimliğiyle temsil ediliyor mu?

    Evet ise, herhangi bir kullanıcı sudokendi şifresini çalıştırıp sonra süper kullanıcı ayrıcalığını kazanamaz mı? Linux bunu bazı kullanıcılarda kısıtlayabilir mi?

  2. O düzeltmek mi sudoşifre sorar sonra execve() başlar yürütülecek main()arasında /usr/bin/sudo?

    Sürecin euid'i kök olarak değiştirildiğinden (/ usr / bin / sudo'nun set-user-id biti ayarlandığından), sudo'nun daha sonra şifre istemesinin anlamı nedir?

Teşekkürler.

Https://unix.stackexchange.com/a/80350/674 okudum , ancak yukarıdaki soruları cevaplamıyor.


3
Herhangi bir kullanıcı değil, yalnızca sudoers listesine dahil olanlar.
Rodrigo

1
@Rodrigo Bu bir cevap gibi geliyor, bir yorum değil bir cevap koyun.
Philip Kendall

2
@PhilipKendall Bu OP'nin şüphelerinin sadece bir kısmını yanıtladı.
Rodrigo

Yanıtlar:


22
  1. En yaygın yapılandırmasında, çalışansudo kullanıcının parolasını sorar (dediğiniz gibi, işlemin gerçek kullanıcı kimliğine karşılık gelen kullanıcı). Noktası (aynı konfigürasyona göre belirlenir belirli kullanıcılara ekstra yetkileri vermek için kendi dışında başka bir kimlik doğrulama sağlamak zorunda olan kullanıcılar olmadan). Ancak, does onay çalıştıran kullanıcı bu gerçekten onlar olduğunu iddia edenlerin olduğunu ve (ya da her türlü kimlik doğrulama mekanizması için ayarlanmış kendi şifre sorarak bunu yapmaz genellikle PAM kullanarak, - bu bir parmak izi veya iki faktörü içeren bu yüzden kimlik doğrulama vb.). sudosudosudoerssudo sudosudo

    sudomutlaka kök salma hakkı vermez, çeşitli ayrıcalıklar verebilir. Tarafından rootlanmasına izin verilen herhangi bir kullanıcı sudoersbunu yalnızca kendi kimlik doğrulamasını kullanarak yapabilir; ancak bir kullanıcının girmesine izin verilmez, yapamaz (en azından, kullanarak değil sudo). Bu, Linux'un kendisi tarafından değil, sudo(ve kimlik doğrulama kurulumu) tarafından zorlanır.

  2. sudogerçekten çalışmaya başladıktan sonra şifre ister; başka türlü yapamaz ( yani çalışmaya başlamadan önce hiçbir şey yapamaz ). Noktası sudobile 's root olsa şifre isteyen, (onun tipik yapılandırmada) çalıştıran kullanıcının kimliğini doğrulamak etmektir.


12

sudogenellikle, onu çalıştıran kullanıcının şifresini ister, ancak bu yapılandırılabilir :

Aksine su(1)zaman, sudoerskimlik doğrulaması gerektiriyorsa, bu çağırarak kullanıcının kimlik bilgilerini değil, hedef kullanıcının (veya kök) 'ın kimlik bilgilerini doğrular. Bu yoluyla değiştirilebilir rootpw, targetpwve runaspwdaha sonra açıklanan bayrakları.

Ayar rootpwher sudozaman kök parolasını targetpwister, kullanıcının parolasını sudosonunda programı şu şekilde çalıştırmasını runaspwister ve ayarlanan kullanıcının parolasını sorar runas_default.

sudoBöyle bir ikili kurulum gerçekten herhangi bir kullanıcı tarafından kök ayrıcalığı ile başlatılabilir. sudoKimlik doğrulama kodunda herhangi bir hata bulunmadığını varsayarsak , kendi başına çok fazla önemli olmaz.

Benzer şekilde, herhangi bir işlem, herhangi bir sistem çağrısını çağırarak çekirdek modunda kod yürütebilir open(). (bu, root ile kullanıcı alanı koduyla aynı değildir.) Çekirdeğin hataları olmadığı sürece, rastgele kod çalıştıramazlar.


8

Şunun ilk satırlarından man sudo:

AÇIKLAMA
sudo, izin verilen bir kullanıcının, güvenlik ilkesinde belirtilen süper kullanıcı veya başka bir kullanıcı olarak bir komut yürütmesine izin verir. Çağıran kullanıcının gerçek (etkin olmayan) kullanıcı kimliği, güvenlik ilkesinin sorgulanacağı kullanıcı adını belirlemek için kullanılır.

Yani:

  1. Çağıran kullanıcının gerçek (etkin olmayan) kullanıcı kimliği kullanılır ...
  2. Evet, ( izin verilen ) herhangi bir kullanıcı sudo çalıştırarak ve ardından gerekli ( yapılandırılmış ) kimlik doğrulamasını sağlayarak süper kullanıcı (veya başka) ek ayrıcalık (lar) kazanabilir . Hem izin verilen hem de yapılandırılan sudoers dosyalarında ayarlanır.

  3. Linux bunu bazı kullanıcılarda kısıtlayabilir mi?
    Evet, olabilir, ama değil. Linux, sudo ikili dosyasının sudo programı ve dosya içindeki kurallar kümesine (güvenlik politikası) göre karar vermesine izin verecek şekilde ayarlanmıştır /etc/sudoers. Genellikle, başka dosyalar da (bunun yerine / yerine) kullanılabilir.

Gönderen man setresuid:

AÇIKLAMA
setresuid (), çağıran işlemin gerçek kullanıcı kimliğini, etkin kullanıcı kimliğini ve kaydedilmiş set-kullanıcı kimliğini ayarlar.

  1. Çekirdek tarafından verilen süper kullanıcı izinlerini almanın tek yolu, bir program intiharı çalıştırmaktır. Aksi olamaz. Linux, süper kullanıcı izinleri vermeyi seçti.

  2. Çekirdek, başka bir kullanıcı tarafından değiştirilemeyen bir yürütülebilir dosya yükledikten sonra (root'a ait ve yalnızca root tarafından yazılabilir) yürütülebilir dosyanın kendisi (sudo), şifresini (veya yapılandırıldığı gibi başka bir şeyi) sorarak kullanıcının kimliğini doğrular. ve izin verilip verilmeyeceğine ve hangi izinlerin verileceğine karar verir.


-1

Hakkında diğer iyi cevaplara ek olarak sudo:

suetkili bir şekilde farklı bir kullanıcı olmanızı sağlar. Kendi bilgisayarımda günlük kullanım için yönetici olarak çalışmıyorum - yani, diğer şeylerin yanı sıra (doğrudan) kullanamıyorum sudo. Ben kullanmak istiyorum yoksa sudo, ben kullanabilirsiniz subu rol kullanımda ardından "haline" Yönetici kullanıcıya ve sudo. Bu durumda Yönetici hesabının şifresini iki kez giriyorum - bir kez çalıştırdığımda suve bir kez çalıştırdığımda sudo.

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.