Soru Apache'nin hangi kullanıcı olarak çalıştığını öğrenmek?


Sunucumda bir dosya yükleme dizini burada güzel anlatıldığı şekilde güvenceye almak istiyorum ancak bu talimatları uygulayabilmem için bir sorunum var. Apache'nin hangi kullanıcı olarak çalıştığını bilmiyorum.

Httpd.conf dosyasına bakabileceğiniz bir öneri buldum ve bir "Kullanıcı" satırı olacak, ama benim httpd.conf dosyasında böyle bir satır yok, bu yüzden Apache'nin varsayılan kullanıcı olarak çalıştığını tahmin ediyorum. Bunun ne olduğunu anlayamıyorum.

Yani, sorum şu:

  • varsayılanı nasıl bulabilirim kullanıcı
  • varsayılan kullanıcıyı değiştirmem gerekiyor mu
  • Cevabınız evet ise ve httpd.conf dosyasını düzenleyerek varsayılan kullanıcı, Bir şeyleri vidalamak olası mıdır?

Teşekkürler!


191
2018-03-24 16:22


Menşei


bu soru neden reddedildi? Evet, her yerde cevaplandığı için güncellendi, ancak oylamaya gerek yok mu? Bu mükemmel bir soru mu? Belki de bizim aşağı seçmenimiz bunun hakkında yapıcı bir yorum eklemeyi umar mıydı? - Bryan
Bu güncellemeyi yanıt olarak göndermek ve şu anda Yanıtsız sırada olduğunuz sırada kabul etmek isteyebilirsiniz. - Fahad Sadah
StackOverflow'ta söylenen için +1; bazı kullanıcılar yeni kullanıcıları çalıştırmakta ısrarlı görünüyor - wruckie
Bağlantılı soru artık mevcut değil - pal4life
Bir sonraki soru: ne yapmalı çünkü iki kullanıcıdan biri gibi root ve www-data. "Doğru" Apache grubuna bir şeye erişmek için nasıl izin veriyorsunuz? - jww


Cevaplar:


ps aux | egrep '(apache|httpd)' genellikle apache'nin nasıl çalıştığını gösterir.

Genellikle varsayılan kullanıcıyı değiştirmenize gerek yoktur, "hiç kimse" veya "apache" genellikle iyi kullanıcılardır. "Kök" olmadığı sürece;)

düzenleme: apache ikili dosyalarını da yakalamak için daha doğru komut


194
2018-04-19 23:19



Evet ya da Ubuntu'da www-data olacak. - gravyface
... ve Debian. :) - cubuspl42
Bu komut bana bir şeylerin listesini gösterir. apache ama 1'den root çok. - User
3 işlemim var (/usr/sbin/apache2 -k start), kullanıcının root ve diğer ikisi www-data. Endişelenmeli miyim? - zundi
@zundi, hizmet ayrılmış bağlantı noktalarına (ör. 80 ve 443) bağlanmak gibi şeyler yapmak için kök olarak başlar. Ardından, yapılandırılmış işlem sayısı, web sunucusu işini ve tanımlanmış kullanıcılar olarak diğer görevleri yapmak için başlar. Bu şekilde talepler ayrıcalıklı olmayan süreçler tarafından ele alınmaktadır. Üst kimlik (PPID) tüm diğer işlemler için aynı olduğunu fark edeceksiniz. Bu fikir, root olarak çalışan bir işlem için PID'dir. - Kevin


Aşağıdaki komutu deneyebilirsiniz:

ps -ef | egrep '(httpd|apache2|apache)' | grep -v `whoami` | grep -v root | head -n1 | awk '{print $1}'

31
2018-04-23 13:53



Bu cevabı çok seviyorum, en iyi cevap daha iyi (daha genel). Teşekkürler - pgr


Göre ubuntuforums.org, Ubuntu'da apache2 için varsayılan kullanıcı www-data.

Ubuntu 13.10 Saucy'de doğru olduğu görülüyor.


itibaren Lars Noodén Yukarıdaki forumda.

[Kullanıcı] 'nın gerçekten neye ayarlandığından emin olmak için, gerçek konfigürasyon dosyalarını kontrol edin.   Şemsiye dosyası, apache2.conf aşağıdaki gibi bir şey olacak,

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

Bu, belirlenen ortam değişkenlerine bir referanstır /etc/apache2/envvars.    mod_suexec ayrıca komut dosyalarının henüz farklı bir kullanıcı ve grup olarak çalıştırılmasına izin verir.

Alternatif kullanıcıları, grupları veya her ikisini birden kullanan sanal konaklar bulmak için yapılandırmaları kontrol edin.

$ egrep "^User|^Group|^SuexecUserGroup" /etc/apache2/apache2.conf /etc/apache2/sites-available/*.conf

Red Hat tabanlı dağıtımlar için (genellikle httpd çalıştıran kullanıcı) apache):

$ egrep "^User|^Group|^SuexecUserGroup" /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*.conf

9
2018-06-10 13:14





Bunun eski bir yazı olduğunu biliyorum, ancak hala cevapsız olarak listeleniyor, bu yüzden bir öneride bulunacağım. Apache'nin hangi kullanıcı veya grubun çalıştığını bulamıyorsanız, belki httpd.conf dosyasını açmayı deneyin. Orada "Kullanıcı" ve "Grup" için bir giriş olmalıdır. Apache'nin hangi kullanıcı olarak çalıştığını görmekle kalmaz, aynı zamanda bunu yapmanız gerektiğini düşünüyorsanız bunu değiştirebilirsiniz.


8
2018-04-23 07:53





PHP betiğinize bir kod satırı ekleyebilirsiniz:

echo exec('whoami');

7
2017-09-26 02:08



Buradan izleyin, bu kullanıcı PHP'nin Apache kullanıcısı değil, altında çalıştığını gösterir. Mod_php kullanıyorsanız bunlar aynıdır, ancak şu anda çok yaygın olduğu gibi başka bir şey kullanıyorsunuz (php_fpm gibi), kolayca farklı olabilirler. - benz001


kullanım apachectl -SApache kullanıcısı ve grubu, böyle bir şey gösterecek:

User: name="_www" id=70
Group: name="_www" id=70

7
2017-09-11 00:28



Teşekkürler, benim mac üzerinde apache '_www' olarak çalıştığını görüyorum. - Mercury


Bu kod, daha fazla ya da daha az - alfabetik olmayan, içerdiği tüm root olmayan kullanıcıları içeren işlemleri listeler. apache (veya ismi içeriyor apache)

ps aux | grep -v root | grep apache | cut -d\  -f1 | sort | uniq

5
2018-03-06 12:28



Bu liste muhtemelen, iyi özünüz gibi 'grep apache' gibi işlemleri yürüten kullanıcıları içerecektir. - mwfearnley


  • Kullanıcıyı bulmak için, sadece kullanabilirsiniz ps aux | grep apache çalışırken.
  • Gerek yok, ama Apache root olarak çalışıyorsa güvenlik sorunları var.
  • Üçüncü olarak, Apache kullanıcısını değiştirmek, bazı dizinlere erişim haklarını değiştirecektir. Yeni kullanıcı ve grup için / var / www (veya web sitelerinize sahip olduğunuz her yere) erişebildiğinden emin olmanız gerekir.
  • Baktığım sistemlerde apache her zaman apache: apache (veya benzeri) ile kullanıcı ve grup olarak kuruldu, bu yüzden muhtemelen bu şekilde ayarlanmış olmalıdır.

NOT: Verdiğim cevap budur Stackoverflow.


4
2017-08-01 14:49