Konuda çalışıyorum Ubuntu 16.04 üzerinde uWSGI ve Nginx ile Django Uygulamaları Serve Nasıl . Yazının sonunda, "uWSGI için bir sistem Birim Dosyası Oluşturun" unun sonunda www-data
kullanıcıyı tartışıyorlar . Bu nedir ve neden önemlidir?
Konuda çalışıyorum Ubuntu 16.04 üzerinde uWSGI ve Nginx ile Django Uygulamaları Serve Nasıl . Yazının sonunda, "uWSGI için bir sistem Birim Dosyası Oluşturun" unun sonunda www-data
kullanıcıyı tartışıyorlar . Bu nedir ve neden önemlidir?
Yanıtlar:
Güvenlik için.
Dosyalar dünyaya yazılabilir değil. Yazılacak dosyaların sahibiyle sınırlıdırlar.
Web sunucusu belirli bir kullanıcı altında çalıştırılmalıdır. Bu kullanıcı var olmalı.
Kök altında çalıştırılsaydı, o zaman tüm dosyalara root tarafından erişilebilir olması ve kullanıcının dosyalara erişmek için root olması gerekirdi. Kök sahip olmakla, tehlikeye atılmış bir web sunucusu tüm sisteminize erişebilir. Belirli bir kimliği belirleyerek, tehlikeye atılmış bir web sunucusu, yalnızca tüm dosyalara erişebilir, tüm sunucuya erişemez.
Onu farklı bir kullanıcı kimliği altında çalıştırmaya karar verirseniz, o kullanıcının uygun ayrıcalıklar için dosyaların etkin sahibi olması gerekir. Sistem çapında dosyaların kişisel sahipliğinin kişisel hesabınıza sahip olması kafa karıştırıcı olabilir.
Belirli bir kullanıcı oluşturmak, dosyaları tanımayı kolaylaştıracak chown
ve siteye eklenen yeni dosya ve klasörlerin hangi kimliğini tanımaya tutarlı olacaktır .
Kimliği veya Adı sahibinin fark etmez. Neyin seçilip seçilmediğine karar verilmesi web sunucusu yapılandırma dosyalarında yapılandırılmalıdır.
Varsayılan olarak, sahibinin www-data
yapılandırması Apache2'nin Ubuntu yapılandırmasındadır. Varsayılan yapılandırma olduğundan, web dosyalarınız için gereken sahipliği uygun bir şekilde bilirsiniz. Değiştirirseniz, sitenizdeki dosyaları eşleşecek şekilde değiştirmeniz gerekir.
Nginx'i çalıştırmıyorum , ancak Ubuntu deposunda olduğundan www-data
, varsayılan olarak yapılandırma ile test edildiğinden eminim .
www-data
. Bu nedenle sorunuzda olduğu gibi, sizden kullanıcı kimliği ve grup kimliği oluşturmanızı istediler. Apache2 kurulumu kullanıcıyı otomatik olarak oluşturur. Nqinx hakkında emin değilim . : İle var olup olmadığını kontrol edebilirsiniz iid -u www-data&&id -g www-data
. Varsa, kullanıcı ve grubun kimlik numarasını gösterir. Ubuntu'da varsayılan olarak kullanıcı ve grup numaraları bulunur 33
.
www-data
sahibi de belirtildiği gibi bir güvenlik riski olabilir olarak base-passwd
dokümantasyon sahipleri genellikle tüm internet hizmeti veren içeriğe okuma / yazma erişimi gibi, (MURU cevabı @ bakınız). www-data
Sahibine yazma erişimini kaldırabilir veya farklı bir sahip kullanabilirsiniz. www-data
kesinlikle sunulması gereken tüm verilere okuma erişimi gerekir, ancak yalnızca her dosya ve dizin için gereken izinleri verirseniz ve daha fazlasını yapmazsanız, daha güvende olursunuz.
www-data
Ubuntu'daki web sunucularının (Apache, nginx, örneğin) normal çalışma için varsayılan olarak kullandığı kullanıcıdır. Web sunucusu işlemi erişebilen herhangi bir dosyaya www-data
erişebilir. Başka bir önemi yok.
Gönderen base-passwd
(belgeler /usr/share/doc/base-passwd/users-and-groups.txt.gz
):
Bazı web sunucuları www-data olarak çalışır. Web içeriği bu kullanıcıya ait olmamalıdır, aksi halde tehlikeye atılmış bir web sunucusu bir web sitesini yeniden yazabilir. Web sunucuları tarafından yazılan veriler www verisine aittir.
base-passwd
dokümanlar kazıyordum
www-data
httpd (apache) servisinin sisteminizde etki ettiği kullanıcıdır (ve ayrıca gruptur) .