sudo komutu nasıl şifre ile çalıştırılır?

199

Ubuntu Server 12.04 için AWS resimlerindeki ubuntu kullanıcısı, sudo 'de bunun için bir yapılandırma olmadığında tüm komutlar için% co_de parola içermez?

Amazon'da Ubuntu sunucusu 12.04 kullanıyorum. Varsayılan Ubuntu kullanıcısı ile aynı davranışı olan yeni bir kullanıcı eklemek istiyorum. Özellikle bu yeni kullanıcı için parolasız /etc/sudoers istiyorum.

Bu yüzden yeni bir kullanıcı ekledim ve sudo 'yi (tabii ki visudo kullanarak) düzenlemeye gittim. Bu dosya okunurken, varsayılan /etc/sudoers kullanıcısı, ubuntu grubunun üyesi olmaktan parolasız sudo elde ediyordu. Bu yüzden yeni kullanıcımı ekledim. Hangi işe yaramadı. Sonra admin yönergesini NOPASSWD dosyasına eklemeyi denedim. Hangi da işe yaramadı.

Her neyse, şimdi sadece merak ediyorum. % Co_de% kullanıcısı, sudoers olarak tanımlanmadıysa nasıl parolasız ayrıcalık elde eder? Buna izin veren mekanizma nedir?

    
sordu aychedee 23.09.2012 11:30

3 cevap

292

Tamam, cevabını keşfettim, bu yüzden tamlığı için buraya koyabilirim. % Co_de değerinin sonunda, sadece bir yorum olduğunu düşündüğüm şey var:

#includedir /etc/sudoers.d

Ancak, bu aslında bu dizinin içeriğini içerir. İçinde dosya olan % Co_de%. Beklenen içeriğe sahip olan

# ubuntu user is default user in cloud-images.
# It needs passwordless sudo functionality.
ubuntu ALL=(ALL) NOPASSWD:ALL

Yani, varsayılan ubuntu kullanıcısı için sudo yapılandırmasının yapıldığı yer burasıdır.

Bu dosyayı visudo kullanarak düzenlemeniz gerekiyor. Aşağıdaki komut, doğru dosyayı visudo ile düzenlemenize izin verecektir.

sudo visudo -f /etc/sudoers.d/90-cloudimg-ubuntu

Ve şöyle bir satır ekleyin:

aychedee ALL=(ALL) NOPASSWD:ALL

Sonunda.

    
verilen cevap aychedee 23.09.2012 12:27
75

Bu davranışı birden çok sunucuda kolayca çoğaltmak için yapılacak en basit iletinin şu oldu:

sudo visudo

Bu satırı değiştir:

# Members of the admin group may gain root privileges
%admin  ALL=(ALL) ALL

bu satıra:

# Members of the admin group may gain root privileges
%admin  ALL=(ALL) NOPASSWD:ALL

Ve bu satırı altında taşı:

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Şimdi buna sahip olmalısınız:

# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin  ALL=(ALL) NOPASSWD:ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

sonra parola ile sudo erişimi gerektiren her kullanıcı için :

sudo adduser <user> sudo

ve sudo erişimine ihtiyaç duyan her kullanıcı için Şifre yok :

sudo adduser <user> admin

ve son olarak şunu çalıştırın:

sudo service sudo restart

Ve işte bu!

Düzenleme: Varsayılan olarak mevcut olduğunu düşünmediğim gibi yönetici grubunu eklemeniz gerekebilir.

sudo groupadd admin

Ayrıca, varsayılan% AW_ ubuntu kullanıcısını bu komutla admin grubuna da ekleyebilirsiniz:

sudo usermod ubuntu -g admin
    
verilen cevap jiminikiz 03.04.2014 23:45
-1

Herhangi bir editör kullanmadan kısa cevap (bash üzerinde test edildi, uzaktaki sunucularda yürütmek için çok riskli).

Geçerli kullanıcı için şifre kullanmadan sudo’yu yapılandırın:

echo "$USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers

Düzenlemeyi şununla yapın:

sudo visudo -c

Sudo’yu şifre kullanmadan kullanıp kullanamayacağınızı doğrulayın:

sudo cat /etc/sudoers | grep "$USER"

... ya da sadece şunu deneyin:

sudo <anything>
    
verilen cevap user315445 14.08.2014 00:25

Etiketlerdeki diğer soruları oku