Komut dosyaları için şifre istemi olmadan sudo'ya ihtiyacım var. Nerede hata yaptım?


9

Ben sudo grubunda iyiyim:

$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)

Benim sudores içinde uygun ayar var gibi görünüyor:

sudo    ALL=(ALL:ALL) NOPASSWD: ALL

ve buradaki son önerilmeyen çizgi.

Ama denediğimde git pull, şifremi yeniden yazmak istedim:

$ sudo -u www-data git --git-dir /var/www/.git --work-tree /var/www pull "origin" master
[sudo] password for molot:

Konsolda oturum açtığımda bir sorun değil, ancak komut dosyalarında kabul edilemez. Öyleyse sudo grubundaki herkesin şifre yeniden yazmadan www-data olarak gitmesine nasıl izin verebilirim?

İsmimi doğrudan koyduğumda:

molot ALL=(ALL) NOPASSWD: ALL

benim için çalışıyor. Ancak, açıkçası, marian veya sudo grubundan diğer kullanıcılar için değil. El kitabını anladığım kadarıyla , hem kullanıcı adları hem de grup adları ilk dosyada çalışmalıdır.


Yapamaz mısın sudo -u www-data ./your_script.sh? Senaryonun amacı nedir?
jimbobmcgee

@jimbobmcgee bu bir git kancası, bu yüzden hayır, ona hiçbir şey başaramam. Git değişiklikleri iten kullanıcı tarafından çağrılır ve çevresinde gerçek bir yol bulamadım.
Mołot

İlk alan ( sudoersdosya biçimini hızlı bir şekilde anladığım doğru ise) çağıran kullanıcının kullanıcı adıdır. Joker karakterle değiştirmeyi denediniz mi *veya hangi kullanıcı git kancası olarak çalışır?
bir CVn

@ MichaelKjörling burada belirtildiği gibi ilk alana hem kullanıcıları hem de grupları yazmak mümkün olmalıdır. *çalışmıyor. İsmimi koymak benim için doğrudan işe yarıyor ... ama sudo grubundaki diğer kullanıcılar için değil tabii ki.
Mołot

@ MichaelKjörling teşekkür ederim, yorumunuz özel karakterleri aramamı sağladı ve bir cevap bulmama izin verdi: D Düzenleme: kendi cevaplarını sildi ve aynı anda 3. tarafın cevaplarını kabul etti.
Mołot

Yanıtlar:


19

Sudo'larınızda ilgili karakteri bir karakterin eksik olduğu anlaşılıyor:

sudo ALL = (ALL: ALL) NOPASSWD: TÜMÜ

'sudo' adlı bir kullanıcıyla eşleşir. 'Sudo grubundaki tüm kullanıcılar' için:

% sudo ALL = (ALL: ALL) NOPASSWD: TÜMÜ

(başlangıçtaki% işaretine dikkat edin).


1
Ah en neyi böylece %de %wheelgeliyordu.
nikhil

1

sudo visudo

Ardından, molotkullanıcı adınız olduğunu varsayarak dosyanın sonuna gidin ve:

molot ALL=(ALL) NOPASSWD: ALL

Bu işe yaramalı, ancak işe yaramazsa bizi haberdar edin.


Bu çalışıyor. Benim için. Ancak, açıkça, marian veya sudo grubundaki herhangi bir kullanıcı için değil.
Mołot

Ardından kullanıcı takma adları ( User_Alias) oluşturun ve root ( Runas_Alias) olarak belirli komutları çalıştırma izni verin . Grubunuzun nasıl kurulduğunu bilmiyorum, Sudoers wiki help.ubuntu.com/community/Sudoers adresine bakabilirsiniz . "Kullanıcı Özellikleri" bölümünü kontrol edin, bu yardımcı olacaktır.
Jugurtha Hadjar
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.