Django sitesi çalıştıran bir Gunicorn sürecini yönetmek için amiri kullandım, ancak bu soru amir tarafından yönetilen herhangi bir şeyle ilgili olabilir. Daha önce sunucumuzu yöneten ve kullanan tek kişiydim ve danışman sadece root olarak koştu ve supervisorctl restart myapp
gerektiğinde çalıştırmak için sudo kullanıyordum .
Artık sunucumuzun farklı sitelerde çalışan birden fazla kullanıcıyı desteklemesi gerekiyor ve her projenin, diğer kullanıcıların süreçlerini yeniden başlatamadan kendi gunicorn süreçlerini yeniden başlatabilmesi gerekiyor.
Bu blog gönderisini takip ettim:
http://drumcoder.co.uk/blog/2010/nov/24/running-supervisorctl-non-root/
root olmayan kullanıcıların supervisorctl kullanmasına izin verebildik, ancak şimdi herkes başka birinin işlemlerini yeniden başlatabilir. Görünüşe göre, süpervizörün kullanıcı başına erişim kontrolü yapmanın bir yolu yoktur.
Herkesin root olmadan kendi süreçlerini yeniden başlatmasına nasıl izin verileceği konusunda bir fikri olan var mı?
DÜZENLEME: Düşündüğümüz bazı şeyler, kökten sahip olduğu bir komut dosyasını, başka bir şey içermeyen suid bit kümesiyle yazmak supervisorctl restart myapp
ve sahibi olan kullanıcının dizinine koymaktır myapp
. İnternet böyle bir betiğin yanlış yapılması durumunda güvensiz olduğunu söylüyor. Ayrıca, belirli kullanıcıların komutlarını dinleyen ve kullanıcının izni varsa süpervizör sürecini yeniden başlatan özel bir arka plan programı yazmayı da düşündük. Daha basit bir çözüm işe yarayacaksa bu fikir aşırı derecede karmaşık görünüyor.