it-swarm.asia

Linux: Bir kullanıcıya apache'yi yeniden başlatma izni nasıl verilir?

Belirli koşullar altında Apache httpd yeniden başlatmanız gereken kök olmayan bir kullanıcı altında çalışan bir komut dosyası var.

Kullanıcının bunu yapmasına izin vermemin en basit yolu ne olurdu?

Ubuntu Server 8.04 LTS kullanıyorum.

35
itsadok

Kısa cevap:

visudo kullanarak, kullanıcı adını uygun kullanıcı adıyla değiştirerek sudoers dosyanıza aşağıdakileri ekleyin:

username ALL = /etc/init.d/Apache2 

Bunu yapmadan önce bir parola girmeniz gerekmiyorsa, aşağıdakileri kullanın:

username ALL = NOPASSWD: /etc/init.d/Apache2 

Bundan sonra, 'kullanıcı adı' kullanıcı Sudo /etc/init.d/Apache2 start (veya durdurma, yeniden başlatma vb.)

Uzun yanıt: Henüz yapmadıysanız bunun için ayrı bir kullanıcı ayarlamak ve/etc/sudoers dosyasını bir kullanıcının veya grubun istediğiniz komutu yürütmesine izin verecek şekilde yapılandırmak isteyeceksiniz.

Örneğin, 'ben' kullanıcısının tüm komutları parola isteyen kök komut olarak yürütmesine izin vermek için aşağıdakileri yaparsınız:

ben ALL= ALL

'Ben'in yalnızca bir komut yürütmesine izin vermek için (örneğin, rm gibi) aşağıdakileri yaparsınız:

ben ALL= /bin/rm 

Bir komut dosyasını kullanıcı olarak çalıştırıyorsanız ve parola sormak istemiyorsanız, 'NOPASSWD' seçeneğini aşağıdaki gibi kullanmak istersiniz:

ben ALL=NOPASSWD: /bin/commandname options

Grup isimlerini yüzde işaretiyle ön ek uygulayarak gruplar için aynı şeyi yapabilirsiniz, örneğin:

%supportstaff          ALL= NOPASSWD: /bin/commandname 
84
epic9x

Kısa cevap: Sudo.

Çağrı aşağıdakine benzer: Sudo /etc/init.d/Apache2 restart

En kolayı,/etc/sudoers dosyasını ayarlamak için visudo kullanmaktır. Görmek man sudoers ve man visudo detaylar için.

1
Zayne S Halsall

Bunu Apache2ctl'e bir paketleyici yazarak, bir web yönetim grubuna grup sahipliği atayarak ve suid bitini ayarlayarak da gerçekleştirebilirsiniz. Bu, visudo'dan daha az genel bir çözümdür, ancak kullanıcı yetenekleri ve hata kontrolü üzerinde özel sınırlamalara izin verir.

Bu aracı kendi ihtiyaçlarım için yazdım ve github'da paylaştım: https://github.com/josiahjohnston/ltd_Apache2ctl

0
JosiahJohnston