Sudo kullanarak şifre sormadan yürütmeye nasıl izin verilir?


15

Ben bir komut satırı yürütme yapmak ve bir sonuç geri almak gerekiyor bir Java uygulaması yazıyorum, ama ben komutu yürütmek, sudo şifre isteyin. Şimdiye kadar denedim:

$ sudo -s
$ vim /etc/sudoers
# User privilege specification
root         ALL=(ALL:ALL) NOPASSWD: ALL
javauser     ALL=(ALL:ALL) NOPASSWD: ALL

:wq
$ 4 -r--r-----   1 root root     615 2011-10-26 09:23 sudoers

Komutu yürüttüğümde tekrar javauser için "[javauser] şifresini sorar:". Ama zaten noPASSWD'den bahsettim.

whoamidöner alexve bunu sudoersdosyada bu şekilde ekliyorum

# User privilege specification
root    ALL=(ALL:ALL) ALL
alex 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

Koşu sürekli bana şifremi soruyor, herhangi bir fikir?


Görünüşe göre çok benzer bir soru var : askubuntu.com/questions/39281/… - Cevabı oradan denediniz mi?
Sergey

Java kodunuzda sistem çağrınızda "sudo / absolute / path / to / command" komutunu kullandığınızdan emin olun. Btw. güvenlik nedeniyle sudoers dosyasını düzenlemek sudo visudoyerine kullanmalısınız vim. Bu şekilde bir hata yaparsanız program sizi bu konuda uyarır.
con-f-use

Tam olarak ne denediğimi burada bulabilirsiniz: gist.github.com/1315951

Yanıtlar:


28

Terminal türünde aşağıdakileri yapmanız ve sudo visudodosyanın sonuna sudo parolasını yazmadan çalıştırmak istediğiniz komutları belirten böyle bir satır eklemeniz gerekir (programda kullanmak istediğiniz her komutu kullanmanızı ve sadece tüm programların yürütülmesine izin vermez)

<yourusername> ALL=NOPASSWD: <command1>, <command2>

Şimdi, bu komutu yazdığınız sürece belirtilen komutları şifresiz çalıştırabilirsiniz sudo.

ie: diyelim ki shutdown -r nowher seferinde sudo şifresi yazmak zorunda kalmadan ve kullanıcı adınız 'joedoe'

  1. tip sudo visudobir terminal

  2. Dosyanın sonunajoedoe ALL=NOPASSWD: /usr/sbin/shutdown -r now yeni bir satır olarak ekleyin , kullanmaya çalıştığınız programın mutlak yollarını kullanın.

  3. programınızda sudo shutdown -r nowsudo parolasını yazmanıza gerek kalmadan kullanabilirsiniz .

which <program name>Bir terminalde kullanarak bir programın mutlak yolunu bulabilirsiniz .

Bu çok kirli bir hile dilek sisteminizi diğer tehlikeler için açık bırakır ama sanırım ne yaptığını biliyorum ve bunu istiyorum.

Düzenle

Grup izinleri tarafından hiçbir şeyin üzerine yazılmaması için ayarladığınız izinlerin dosyanın sonunda olduğundan emin olmanız gerekir .


Bunu zaten yapmış gibi görünüyor.
con-f-use

O zaten bunu yaparsa neden onun kullanması gerektiğini kendisine açıklıyoruz sudo visudodeğil vimSudoers dosyasını düzenlemek için? Bunu yapsaydı işe yarardı.
Bruno Pereira

1
@goOgle Kodunuzun sudoiçindeki komutun önüne mı yazıyorsunuz ? sudoers dosyasında nopasswd zorlansanız bile bunu yapmanız gerekir. yani: sudo <command>sadece kullanmayın <command>.
Bruno Pereira

1
Benim için cmd = "whoami" döner brunove cmd = "sudo whoami"dönerroot
Bruno Pereira

3
Buldum! Satırım sudoersdosyanın sonuna kadar değilse, bu çoğaltabilir . Sonra grup ataması, vb. Gerçekten son satır! Dosyadaki son satır olacak şekilde taşıyın! (umarım budur).
Bruno Pereira
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.