Bir kullanıcıya kapatma ayrıcalıkları nasıl verilir?


9

Ubuntu 11.04 kullanıyorum. Çalışan bir işlemi denetler ve bu işlem sona erdiğinde sistemi kapatır bir komut dosyası çalıştırmak istiyorum. Bunu yapmak için, kullanıcının komut dosyası parola gerekmeden yürütülebilmesi için kapatma erişimi gerekir.

Ben atıfta bu sayfayı ve benim Sudoers dosyasında metin ekledi. Ancak, her çalıştırdığımda hala şifreyi soruyor sudo shutdown -h now. Ayrıca, sudo olmadan kapatma yürüttüğümde, kök ayrıcalıklarının gerekli olduğunu söyleyen bir hata alıyorum.

Sudoers dosyam böyle bir şeye benziyor.

# Cmnd alias specification
Cmnd_Alias      SHUTDOWN = /sbin/shutdown

# User privilege specification
root    ALL=(ALL:ALL) ALL
myusername    ALL = NOPASSWD: SHUTDOWN

Bir kullanıcıya şifreyi manuel olarak girmek zorunda kalmadan kapatma komutunu yürütmesine nasıl izin verebilirim?

Teşekkürler.


1
Gerçek ve bütün sudoersdosyanızı gönderebilir misiniz ?
enzotib

Yanıtlar:


6

Bir kullanıcı adı / şifre girmenizi gerektirmeyen HAL veya ConsoleKit kullanarak kapatabilir veya yeniden başlatabilirsiniz:

HAL (eski Ubuntu sürümleri):

dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

ConsoleKit (yeni Ubuntu sürümleri, Ubuntu 11.04'te test edilmiştir):

dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

7

Bu cevaptaki gibi yaptım , benim için kusursuz çalışıyor. Belki yaklaşımınız bu noktayı kaçırıyor visudo?

Bir komut satırı açın ve şunu yazın:

sudo visudo 

Açılan Dosyaya sonuna aşağıdaki satırı ekleyin:

yourusername ALL=NOPASSWD: /sbin/halt

Ardından düzenleyiciden çıkın ve güvenli hale getirin (CTRL + x).

Şimdi bilgisayarınızı komut satırından kapatabilirsiniz, örneğin bir şey indirdikten sonra:

wget UrlOfTheFileYouWantToDownload ; sudo halt

1

Bir süre önce bunu suid (Set User ID) ayarlayarak yaptım. Bu, programın dosyayı çalıştıran kullanıcı olarak değil, dosyanın sahibi olarak yürütülmesini sağlar. Kapatma kökü tarafından sahiplenildiğinden bu, sudo olmadan kapatmanıza izin vermelidir.

chmod u+s /sbin/shutdown

Yine de herkes kapatmayı çalıştırabileceğinden güvenlikle ilgili etkiler vardır. http://en.wikipedia.org/wiki/Setuid


Genel olarak, içindeki yapılandırma dosyaları dışında paketlerden yüklenen dosyaların veya dosyaların meta verilerinde değişiklik yapılması önerilmez /etc.
enzotib

Hmm ... doğru! Ama o zaman resmi yol nedir? Polkit ile mi oynuyorsunuz? Çok da hoş değil ...
turbo

sudobence doğru yol, ama maalesef kullanıcı sudoersdosyasını görme şansı vermiyor ve sorun ne.
enzotib

Benim için işe yarayan tek şey bu.
Mark Stewart

0

Komut dosyasının kendisini root olarak çalıştırmak istediğiniz anlaşılıyor. Bir şeyin bitmesini bekleyen ve ardından bilgisayarınızı kapatacak bir komut dosyası çalıştırmak istiyorsanız, komut dosyasını sudo ile çalıştırmanız yeterlidir. Bu, komut dosyasını çalıştırdığınızda şifrenizi soracaktır, ancak daha sonra komut dosyasının kendisi herhangi bir müdahale olmadan sistemi kapatmak için ücretsizdir.

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.