Sudoers NOPASSWD seçeneği neden çalışmıyor?


75

/ Etc / sudoers içinde NOPASSWD hattım var (düzenlenmiş visudo)

gatoatigrado    ALL=(ALL) NOPASSWD: /bin/set-slow-cpufreq

Ancak, çıktı

gatoatigrado@coral:~> sudo -n /bin/set-slow-cpufreq
sudo: sorry, a password is required to run sudo

Bu tür bir komut OpenSuSE makinesinde çalışır, ancak Ubuntu 11.10'da çalışmaz. Neyi yanlış yapıyorum?

Not : Ben herhangi bir ilgili sistem günlüğü iletileri, örneğin yoluyla bulamıyorum tail -f /var/log/syslog.

Düzenle

İşte / etc / sudoers.

Defaults    env_reset

# things I've tried copying from an opensuse machine
Defaults always_set_home
Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE"

root    ALL=(ALL:ALL) ALL
gatoatigrado ALL=NOPASSWD: /bin/set-slow-cpufreq
%admin ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

2
sudoersKuralların sırasının tamamını gösterebilir misiniz?
enzotib

Yanıtlar:


117

Man çizgisinde belirtildiği gibi, bu satırı grup kuralının satırından sonra koymalısınız :sudosudoers

   When multiple entries match for a user, they are applied in order.
   Where there are multiple matches, the last match is used (which is not
   necessarily the most specific match).

5
Ek bir not olarak, bu aynı zamanda birden çok gruba kullanıcılar için geçerlidir: örneğin kullanıcı grubu içindedir yönetici ve grup sudo için kural eğer sudo sonradır yönetici daha sonra kural sudo'yu için kuralını geçersiz kılar yönetici her iki grupta da kullanıcı için.
Populus

2
Teşekkürler! Sonuna çizgi ekledim /etc/sudoersve şimdi çalışıyor. İlgilenenlere burada tam açıklama: techglimpse.com/ubuntu-sudoers-nopasswd-option-not-working
elimisteve

4

İdeal olarak, hangi komutların sudosizin için çalıştırılabileceğini özelleştiriyorsanız, bu değişiklikleri doğrudan dosyayı /etc/sudoers.d/düzenlemek yerine ayrı bir dosyada yapmanız gerekir sudoers. Dosyaları visudodüzenlemek için her zaman kullanmanız gerekir .

Örnek: sudo visudo -f /etc/sudoers.d/slowcpu

Satır onaylama izninizi ekleyin: gatoatigrado ALL=NOPASSWD: /bin/set-slow-cpufreq

Sonra kaydedin ve çıkın ve visudosözdizimi hatalarınız varsa sizi uyaracaktır.

sudo -lKullanıcıya verilen izinleri görmek için koşabilirsiniz , kullanıcıya özel NOPASSWDkomutlardan herhangi %groupyouarein ALL=(ALL) ALLbiri çıktıda herhangi bir komuttan ÖNCE görünürse , şifreniz istenir.

Kendinizi bu sudoers.d dosyalarının birçoğunu oluştururken bulursanız, belki de görsellerini daha kolay hale getirmek için her bir kullanıcı için adlandırılmış oluşturmak istersiniz. FILE NAMES ve RULES dosyalarının sıralamasının çok önemli olduğunu aklınızda bulundurun, yüklü olan LAST bir tanesi, önceki girişlerden daha fazla veya LESS olması halinde kazanır.

Dosya adı sıralamasını 00-99 veya aa / bb / cc ön ekini kullanarak denetleyebilirsiniz, ancak sayısal ön eki olmayan HERHANGİ bir dosyanız varsa, numaralandırılmış dosyaların ardından yükleyeceğini unutmayın. ayarlar. Bunun nedeni, dil ayarlarınıza bağlı olarak, "sözcük sıralama" sırasındaki kabuğun önce sayıları sıralar ve ardından "artan" sıralamaya göre sıralamada büyük ve küçük harfleri araya sokması olabilir.

Çalıştırmayı printf '%s\n' {{0..99},{A-Z},{a-z}} | sortve printf '%s\n' {{0..99},{A-Z},{a-z}} | LANG=C sortgeçerli dilin AaBbCcvb. Yazdırılıp yazdırılmayacağını veya ABCdaha sonra kullanılacak abcen iyi "son" harf önekinin ne olacağını belirlemek için deneyin .


Buna katılıyorum. / Etc / sudoers dosyasını düzenlemedeki mantıktan bazıları sezgisel görünmüyordu -% wheel ALL 'ı alamadım. = (ALL) NOPASSWD: ALL # /etc/sudoers.d satırı% SUDO ve% WHEEL gibi diğer satırların önünde olmalıydı. #İnclude dir dosyasını diğer grup izinlerinin üstüne koyduğumda çalışmaya başladılar. Bu yüzden her grup için /etc/sudoers.d/ içinde sudoers dosyasındaki sırayla numaralandırılmış dosyalar yaptım, ancak root ALL = (ALL) ALL #includedir satırının altında sudoer olmalıydı. Tuhaf.
AveryFreeman

Aslında includedir sudoer sonunda kalması gerektiğini düşünüyorum. Muhtemelen gördüğünüz şey, sudoers.d içerisindeki diğer dosyalardan biri. Değişikliklerinizi geri alıyordu. Ayrıca ana dosyanızda tekerlek grubunu kısıtlayan bir çizgi olabilir. Komuta veya gruba uygulanacak son kuralın kazandığı yerlerde sudoer'lerin işlendiğini, böylece daha spesifik yardımların kazanıldığını unutmayın, ancak genel bir HERHANGİ bir komutun sonunda gelir ve NOPASSWD'ye sahip değilse, önceki istisnalarınızı geçersiz kılar. Bu nedenle kurallarınızı ayrı dosyalarda bulundurmalısınız, böylece daha sonra işlensinler.
dragon788

Sanmıyorum, bu yepyeni bir kemer kurulumuydu. Tek yaptığım bir satırdakileri denemek ve rahatsız etmekti. Ama bu kesinlikle kontrol edilmesi gereken iyi bir şey, teşekkürler.
AveryFreeman

Bazı sistemler aslında tekerlek kullanmaz ve bunun yerine sudo veya adm veya admin adlı bir grup kullanır. Arch davranışını hatırlayamıyorum ama idhangi gruplara ait olduğunuzu çalıştırabilir ve görebilirsiniz.
dragon788

Kemer tekerlek kullanır.
AveryFreeman

4

Sadece buna da rastladım.

Durumum, kafasız çalışacak uzak bir sistem kuruyorum. Tam disk şifrelemesini etkinleştirdim (aksi takdirde fiziksel erişim erişimine sahip bir saldırgan istediği her şeyi yapabilir) korumalı keypair - root girişi elbette tamamen devre dışı bırakılır)

Ubuntu yükleyici gruba eklenen kök olmayan bir yönetici kullanıcı ister sudo. Sonra kendimi sudoerskullanarak dosyaya kendimi ekledim sudo visudo:

my_username ALL=(ALL:ALL) NOPASSWD:ALL

NOT Dizüstü bilgisayarınızda nopasswd kullanıyorsanız, uzaklaşırken bilgisayarınızı her zaman kilitlemelisiniz, aksi takdirde kahve içerisine krema koymak için kalkarken rahat bir saldırgan çok fazla tehlikeye atabilir

Hala parolanın kimliğini doğrulamak zorundaydım.

enzotib'in cevabı olan bitenin anahtarı. Sudo grubu, kullanıcı adımın girilmesinden sonra sudo'larda görünüyor.

Girişimi sudo satırının altına taşımak yerine, daha önce eklemiş olduğum satırı sildim ve NOPASSWDgiriş için ekledim .%sudo

Bu iş gibi görünüyor. Yine sadece gerçekten ihtiyacınız varsa nopasswd kullanın (Benim durumumda tam olarak ihtiyacım olan buydu, çoğu kullanıcı için sudo etkinliği için parola gerektiren en iyisi)

Ek UYARI: Sudo'ları her zaman visudo ile düzenleyin. (sudo visudo) Ayrıca, kök pencereye başka bir pencerenin açık olması, sudoers dosyasını değiştirirken yapabileceğiniz tüm hataları gidermenizi sağlar.


NOPASSWD'yi herhangi bir / tüm komutlara karşı etkinleştirmek asla iyi bir fikir değildir, bu, sisteminize giren ve bir kullanıcıyı sudo grubuna dahil etmeyi başaran herhangi birinin ÇOK ÇOK HIZLI BİR KÖTÜ YAPABİLECEĞİ anlamına gelir. Bunu, bir LiveCD kullanarak yalnızca birkaç dakikalık erişimle veya kullanıcılarınızı sudo, istenen komutunuzu çalıştırmanın yanı sıra sudo grubuna başka bir kullanıcı eklemek için kendi izinlerinizi kullanan bir cmd çalıştırarak kandırarak kolayca yapabilirim .
dragon788

2
Bunun gibi battaniye ifadeleri yapmayın. Başsız bir sistemde bir giriş şifresi ayarlanması arzu edilmez (yerine keypairlere dayanarak) Tam disk şifrelemesini etkinleştirdim, bu canlı cd ile çok iyi şanslar. (bu arada sudoers dosyasından bağımsız olarak şifrelenmemiş bir sistemde her türlü eğlenceli şeyi yapmanıza izin verir) Ayrıca PATH'imdeki konumlardan hiçbirine yazamazsınız ve başlamak için size kabuk vermiyorum sistemi altüst etmeye çalışmama konusunda sana güvenmediğim sürece. Güvenlik endişeniz geçersiz değil, basitçe modası geçmiş ve ima ettiğiniz gibi evrensel olarak uygulanabilir değil.
jorfus

Sizin gibi güvenlik konusunda derin bir anlayışa sahip olmayanlar için, bu tür bir öneri muhtemelen alternatifinden daha iyidir, ancak bunun ideal olmadığını kabul ediyorum.
dragon788

@ dragon788 Yeterince doğrudur, belki de her iki seviyedeki kullanıcıların daha iyi güvenlik için adım atmalarına yardımcı olmak için yanıtlarımızı düzenleyebiliriz. Bir saldırganın fiziksel erişimi olduğunda güvenliğin bozulmasını önlemek için tam disk şifrelemesini etkinleştirmek için bir uyarı ekleyeceğim ve bir dizüstü bilgisayar kullanıcısını bilgisayarınızı halka açık bir yerde tutmayı unutması durumunda, sudo nopasswd yazılımının hızlı bir şekilde tehlikeye girebileceğini not edeceğim. (Her ne kadar beş dakikalık bir kilit ve ekran kilidi hızlı tuşu
ayarlamayı öneririm

Mükemmel güncelleme, cevabım burada bu yorumlardan başka hiçbir güçlü tavsiyede bulunmuyor ve ironik olarak tam disk şifrelemesini kullandığım işlerde yeterince NOPASSWD'yi etkinleştirdiğim için yazmam çok zor. art arda ve kısa bir bekleme süresinden sonra makinemi kilitlemek için xautolock kullanıyorum.
dragon788

0

Uzak sistemde, şifrelemeyi bırakın, ancak her şeyin "Yöneticiler" grubundaki gibi bir köke sahip olmasına izin verin - bu 0 değil! Tam erişime ihtiyaç duyanları
değiştirebilirsiniz #sudo -g Administrators- sudo dosyada değil , .loginprofilde. Artık herhangi bir standart komut dosyası uzaktan kumandaya "root" olarak erişebilir ve korunması gereken dosyaları koruyabilirsiniz.
Bir diğer kullanışlı "grup", tarayıcı önbelleğinde bir giriş dizini bulunan "Sandbox" dır ve bunu serbestçe okuyabilir ve başka bir şey yapamaz. Büyük harf ilk karakter kullanın.

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.