Şifre olmadan sudo yürütmek?

219

Bu sorudan ilham aldım ....

Sistemimi 12.04 ile kullanan tek kişi benim. Her sudo komutunu veririm; Sistem kullanıcı şifresini ister (kendi yolunda iyi).
Ancak ben düşünüyordum; root hesabını etkinleştirmeden; Kullanıcı parolasını kimlik doğrulaması istemeyen sudo komutlarını nasıl çalıştırabilirim.

NOT: Sudo komutunu parola ile kimlik doğrulaması yapmadan yürütmek istiyorum; sadece terminal yoluyla çalıştırıldıklarında. Bu ekstra güvenlik katmanını, 'Ubuntu yazılım merkezi'ni kullanırken ya da bir bash betiği yürütmek için, bir şey.kullanıcıyı terminaline sürükleyip bırakarak başka işlevlerden kaldırmak istemiyorum.

    
sordu Z9iT 06.06.2012 14:30

7 cevap

63

sudo -i , sisteminizde (veya başka sistemlerde) değişiklik yaparken her 10 dakikada bir şifre yazmak istemiyorsanız ve sistem dosyalarını değiştirmek istemiyorsanız gideceğiniz yoldur.

Konsolu kapattığınızda veya sudo 'yi normal kullanıcınıza geri döndüğünüzde, exit kullanıcı parolanızı kullanarak sizi root'a yönlendirir.

    
verilen cevap Bruno Pereira 06.06.2012 15:36
438

Sorununuzu çözme yaklaşımı, kullanıcılarınızı görebileceğiniz gibi sudoers dosyasına koymaktır.

Terminal penceresini aç ve şunu yazın:

sudo visudo

Dosyanın alt kısmına aşağıdakini yazın:

$USER ALL=(ALL) NOPASSWD: ALL

$USER , sisteminizde kullanıcı adınız. Sudoers dosyasını kaydedin ve kapatın (eğer varsayılan terminal editörünü değiştirmediyseniz (eğer varsa), nano çıkışından çıkmak için ctl + x tuşlarına basın (ancak aşağıdaki ekran görüntüsünün vim değerini gösterdiğini unutmayın) ve Kaydetmenizi isterim.

]

Bundan sonra, terminal penceresinde parola istenmeden sudo <Whatever you want> yazabilirsiniz.

Bu, yalnızca terminal penceresinde sudo komutuna uygulanır. Örneğin, yazılım merkezinde bir paket yüklemeye çalıştığınızda, bir sonraki Ekran Görüntüsü'nde görebileceğiniz gibi şifrenizi girmeniz istenecektir.

Bence istediğin bu.

    
verilen cevap Octávio Filipe Gonçalves 06.06.2012 15:20
30

Kök sudo zaman aşımları bunu yapmanın en kolay ve en güvenli yoludur. Bütün örnekleri koyacağım ama bu şekilde daha güvenli olmasına rağmen, bunu yaptığınız sürece çok riskli olduğu konusunda uyarıda bulunmalısınız:

sudo visudo

Bu, bir editör açar ve sudoers dosyasına işaret eder - Ubuntu varsayılanları nano'ya, diğer sistemler Vi kullanıyor. Artık sisteminizdeki en önemli dosyalardan birini düzenleyen süper kullanıcısınız. Stres yok!

( (vi!) ile belirtilen Vi özel talimatlar. Nano kullanıyorsanız bunları göz ardı edin.)

Defaults satırının sonuna gitmek için ok tuşlarını kullanın.

(vi!) Geçerli satırın sonuna gitmek için A (büyük "a") tuşuna basın ve düzenleme moduna girin (satırdaki son karakterden sonra ekleyin).

Şimdi yazınız:

,timestamp_timeout=X

Burada X, dakika cinsinden zaman aşımı süresidir. 0 belirtirseniz, her zaman şifre istenir. Negatif bir değer belirtirseniz, zaman aşımı süresi asla sona ermez. E.g. % Co_de%.

(vi!) Komut moduna dönmek için Escape tuşuna basın. Şimdi, düzenlemenizden memnunsanız, dosyayı yazmak için Defaults env_reset,timestamp_timeout=5 Enter yazın ve vi'den çıkmak için :w Enter yazın. Bir hata yaptıysanız, belki de en kolay yol, başlangıçtan itibaren yeniden yapmak, kaydetmeden çıkmaktır (komut moduna girmek için Escape tuşuna basmak) ve ardından şunu yazın: q! Enter .

Ctrl + X 'i, sonra Y ' i, ardından dosyanızı kaydetmek ve nano'dan çıkmak için Enter tuşuna basın.

Ek bilgi için sudoers ve vi manuel sayfalarını okumak isteyebilirsiniz.

man sudoers
man vi

Zaman aşımı değerini şu değeri kullanarak sıfırlayın:

sudo -k

Bu talimatlar, sudo komutunu kullanırken şifre sorulmasını kaldırmaktır. Yine de, sudo komutunun root erişimi için kullanılmasına ihtiyaç duyulacaktır.

Sudoers dosyasını düzenleyin

Bir Terminal penceresi açın. % Co_de% yazın. Dosyanın END dosyasına aşağıdaki satırı ekleyin (sonunda değilse daha sonraki girişler tarafından geçersiz kılınabilir):

<username> ALL=NOPASSWD: ALL

:q değerini kullanıcı adınızla değiştirin ( sudo visudo olmadan). Bu, Ubuntu'nun kullanıcı adınız ile aynı ada sahip bir grup oluşturduğunu varsaymaktadır, ki bu tipik bir durumdur. Grup kullanıcılarını veya içinde bulunduğunuz herhangi bir grubu alternatif olarak kullanabilirsiniz. Sadece bu grupta olduğunuzdan emin olun. Bu, Sistem - & gt; Yönetim - & gt; Kullanıcılar ve Gruplar.

Örnek:

michael ALL=NOPASSWD: ALL

Çıkmak için ^ X ( Ctrl + X ) yazın. Bu, dosyayı kaydetmek için bir seçenek sormalı, kaydetmek için Y yazın.

Oturumu kapatın ve sonra tekrar giriş yapın. Bu, sudo komutunu parola istenmeden çalıştırmanıza izin vermelidir.

Kök hesabı

Kök hesabını etkinleştirme

Kök hesabını etkinleştirmek nadiren gereklidir. Bir Ubuntu sisteminin yöneticisi olarak yapmanız gereken hemen hemen her şey sudo veya gksudo üzerinden yapılabilir. Kalıcı kök girişine gerçekten ihtiyacınız varsa, en iyi alternatif aşağıdaki komutu kullanarak bir Kök giriş kabuğunu simüle etmektir:

sudo -i

Ancak, kök girişlerini etkinleştirmeniz gerekiyorsa, bunu şu şekilde yapabilirsiniz:

sudo passwd root

Kök hesabınızı yeniden devre dışı bırak

Bazı nedenlerden ötürü kök hesabınızı etkinleştirdiyseniz ve tekrar devre dışı bırakmak isterseniz, terminalde şu komutu kullanın:

sudo passwd -dl root

Sistem çapında grup sudo

root$ echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

Oturumu kapatın ve tekrar içeri girin.

Sudo zaman aşımını sıfırla

Sudo'nun bir dahaki sefere, şifre çalıştırarak emin olmasını sağlayabilirsiniz:

sudo -k
    
verilen cevap user209328 30.10.2013 02:15
10

Bireysel (veya grup) izinleri vermenin tercih edilen yolu, /etc/sudoers.d altındaki dosyaları eklemek olacaktır

Bu, yerel değişiklikleri varsayılan ilkeden ayırır ve dağıtım sudoers dosyasının değişmesi durumunda zamandan tasarruf eder.

Örneğin:

sudo echo "username ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/username

Hangi kullanıcıların izin verildiğini açıkça belirtir.

Benzer şekilde, birden çok yönergesini yönetmek için bir dosya kullanılabilir:

sudo echo "username ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/local

Lütfen daha fazla bilgi için /etc/sudoers.d/README bölümüne bakın.

    
verilen cevap user1656671 01.02.2017 16:54
5

Geçerli kullanıcı için sudo komutlarını kaldırmak için güzel tek liner

sudo bash -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" | (EDITOR="tee -a" visudo)'
    
verilen cevap Eric Landry 27.06.2016 19:50
4

Tabi ki yapmak istediğiniz şey önerilmez. Bir süre sonra, sudo değerini girmek o kadar otomatik hale gelir ki, kullanışlılığı azalır.

Diğer bir yaklaşım, sudoers dosyanızın olduğu gibi bırakılmasıdır ve on binlerce yüz sunucunuza karmaşık bir şey yaparken, sudo bash değerini girin. Bu, siz çıkana kadar root olarak doğrulanacak bir kabuk verecektir.

    
verilen cevap John S Gruber 06.06.2012 15:27
1

Süper Kullanıcıdan iyi bir cevap geldi:

STDIN'den şifreyi okuyan -S anahtarını kullanın:

echo <password> | sudo -S <command>

<password> değerini şifrenizle değiştirin.

    
verilen cevap WinEunuuchs2Unix 17.05.2018 02:12

Etiketlerdeki diğer soruları oku