/ Etc / sudoers içine NOPASSWD eklemek işe yaramaz


45

14.04'te burada. Makineme SSHed ekledim, aşağıdaki satırı ekledik /etc/sudoers:

myuser   ALL=NOPASSWD: ALL

Ve sonra koşmayı denedi:

sudo mkdir /etc/blah

... ve şifrem isteniyor. Neden?!?

Ben do not bu işlemi yaparken benim şifre sorulmasını istiyorum. Lütfen koşarken kaçtığımı unutmayın ls -ltr /:

drwxr-xr-x 94 root root  4096 Jul 30 13:28 etc

Ama bunun önemli olduğunu düşünmüyorum çünkü kendimi "sudoer" olarak ayarlamıştım, değil mi?

Daha da önemlisi, şifrenizi sormadan sudo mkdir /etc/blahmevcut kullanıcı ( myuser) olarak çalışabilmem için ne yapmam gerekiyor ?

İşte bütün /etc/sudoersdosyam:

#
# 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
fizzbuzz  ALL=NOPASSWD: ALL
chadmin   ALL=NOPASSWD: ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

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

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

#includedir /etc/sudoers.d

Sudoers dosyanızı yollayabilir misiniz? Yönerge haklı, ancak içerikten dolayı işe yaramadı.
Lety

Thanks @Letizia - lütfen güncellememe bakın, size bir şey atladı mı?
Zac,

Ben de ben mi dikkat etmelidir tahmin değil kullanmak visudoişler-n-yapıştırmak kopyalayıp değildi bu dosyaya ancak manuel düzenlemelerin, ben olduğu gibi her şeyi yazdınız. Ancak visudobunun dışındaki diğer dosyaları da düzenler mi? Bu olabilir ...
Zac


Ayrıca, içindeki dosyaları kontrol et /etc/sudoers.d/, onlardan bazı şeyleri geçersiz /etc/sudoers
kılıyor

Yanıtlar:


68

Buna neden olan kuralların sırası / sıralamasıdır. Son kural tercih alır.

Sorununuzu gidermek için, sadece çizgilerinizi oynatın,

fizzbuzz  ALL=NOPASSWD: ALL
chadmin   ALL=NOPASSWD: ALL

dan sudoersdosyaya

sudo visudo -f /etc/sudoers.d/myOverrides 

Bu, sudoersdosyayı düz metin düzenleyiciyle düzenlemekten daha iyidir . Yanlışlıkla dosyaya hata eklerseniz, artık çalıştırmanız mümkün olmayabilir sudo. Her zaman kullanın visudo, böylece sözdizimi kontrol edilir ve hatalarla ilgili uyarılar alırsınız!

Yönergeniz işe yaramıyor, çünkü aşağıdakiler tarafından geçersiz kılındı:

%admin ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

groupsKomutu çalıştırırsanız, kullanıcının bu gruplara ait olduğunu görmelisiniz.


Dosyanın adı nn-somename, örneğin/etc/sudoers.d/20-myoverrides
shimatai'nin bir kuralına uymalıdır

Evet, elbette, birden fazla dosyanız varsa, bunlar sıralı sözcük sırasına göre ayrıştırılır, bu nedenle bir sayı kullanmak iyi bir uygulamadır ve bu sırayı bilmek kolay olacaktır.
Lety

21

Eğer myuser içindedir sudo grubuna 3. satır 1 tane kıldığından, daha sonra hatların bu düzen, (Florian Diesch tarafından belirtildiği gibi) şifresiz erişim sağlamayacaktır.

myuser    ALL=(www-data:www-data) NOPASSWD: ALL
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Bu yüzden sadece satırları şu sıraya koy:

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
myuser    ALL=(www-data:www-data) NOPASSWD: ALL

Altında myuser hesap kullanım sudo -lizinleri kontrol etmek myuser vardır.


10

Bir kullanıcı için birden fazla giriş eşleşirse, sonuncusu kullanılır. Yani eğer fizzbuzzve chadmingrupların üyesi olan adminveya sudohala şifre sorulacaktır.

İki satırı, satırın sonunda sudoersdosyanın sonuna yerleştirin #includedir.


Nitekim, @ Letizia'nın ve cevaplarınızın bir birleşimi en iyisidir çünkü varsayılan #includedirolarak en son girilen sudoersnumaradır.
muru

0

İ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 . Sen vermek ASLA NOPASSWDüzerine ALLkomutları.

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

Satır onaylama izninizi ekleyin: myuser ALL= NOPASSWD: /bin/mkdir

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 önceki girişlerden daha fazla mı yoksa LESS mı olduğunu 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 .

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.