Pertanyaan Mencari tahu apa yang dijalankan pengguna Apache?


Saya ingin mengamankan direktori unggah file di server saya seperti yang dijelaskan dengan indah di sini, tapi saya punya satu masalah sebelum saya dapat mengikuti petunjuk ini. Saya tidak tahu apa yang dijalankan pengguna Apache.

Saya telah menemukan saran agar Anda dapat melihat di httpd.conf dan akan ada baris "Pengguna", tetapi tidak ada baris seperti itu di file httpd.conf saya, jadi saya kira Apache berjalan sebagai pengguna default. Saya tidak bisa mengetahui apa itu.

Jadi, pertanyaan saya adalah (adalah):

  • bagaimana cara mengetahui apa yang default pengguna adalah
  • apakah saya perlu mengubah pengguna default
  • jika jawabannya ya dan saya ubah pengguna default dengan mengedit httpd.conf, apakah itu mungkin mengacaukan segalanya?

Terima kasih!


191
2018-03-24 16:22




mengapa pertanyaan ini ditolak? Ya, sudah diperbarui karena telah dijawab di tempat lain, tapi saya melihat tidak perlu down vote? Ini pertanyaan yang sangat bagus? Mungkin pemilih bawah kami akan peduli untuk menambahkan komentar yang konstruktif mengenai hal ini? - Bryan
Anda mungkin ingin memposting pembaruan itu sebagai jawaban, dan menerimanya, karena Anda saat ini berada dalam antrian yang Tidak Dijawab. - Fahad Sadah
+1 untuk diberitahukan di StackOverflow; beberapa pengguna tampak ngotot untuk melarikan pengguna baru - wruckie
Pertanyaan terkait tidak ada lagi - pal4life
Pertanyaan berikutnya: apa yang harus dilakukan karena salah satu dari dua pengguna, seperti root dan www-data. Bagaimana Anda memberi kelompok "kanan" Apache izin untuk mengakses sesuatu? - jww


Jawaban:


ps aux | egrep '(apache|httpd)' biasanya akan menunjukkan apache apa yang sedang berjalan.

Biasanya Anda tidak perlu mengubah pengguna default, "tidak ada" atau "apache" biasanya pengguna yang baik. Asalkan bukan "root" nya;)

edit: perintah yang lebih akurat untuk menangkap biner apache juga


194
2018-04-19 23:19



Yup, atau itu akan menjadi data www di Ubuntu. - gravyface
... dan Debian. :) - cubuspl42
Perintah itu menunjukkan daftar hal-hal, paling banyak dari apache tapi 1 dari root terlalu. - User
Saya memiliki 3 proses (/usr/sbin/apache2 -k start), pengguna seseorang adalah root dan dua lainnya www-data. Haruskah saya khawatir? - zundi
@zundi, layanan dimulai sebagai root untuk melakukan hal-hal seperti mengikat port yang dilindungi (mis. 80 dan 443). Kemudian mulai berapa pun jumlah proses yang dikonfigurasi, untuk melakukan pekerjaan server web, dan tugas lainnya, sebagai pengguna yang ditentukan. Dengan cara itu permintaan sedang ditangani oleh proses yang tidak memiliki hak istimewa. Anda akan melihat ID induk (PPID) sama untuk semua proses lainnya. Ide itu dengan menjadi PID untuk satu proses itu berjalan sebagai root. - Kevin


Anda dapat mencoba perintah berikut:

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

31
2018-04-23 13:53



Saya suka jawaban ini, lebih baik (lebih umum) daripada jawaban yang paling bersemangat. Terima kasih - pgr


Menurut ubuntuforums.org, pada Ubuntu pengguna default untuk apache2 adalah www-data.

Terlihat benar pada Ubuntu 13.10 Saucy.


Dari Lars Nooden di forum di atas.

Untuk memastikan apa yang [pengguna] benar-benar atur, periksa file konfigurasi yang sebenarnya.   File payung, apache2.conf akan memiliki sesuatu seperti berikut ini,

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

Itu adalah referensi untuk variabel lingkungan yang ditetapkan /etc/apache2/envvars.    mod_suexec juga memungkinkan skrip untuk dijalankan sebagai pengguna dan grup yang berbeda.

Untuk menemukan host virtual apa pun, yang mungkin menggunakan pengguna alternatif, grup, atau keduanya, periksa konfigurasi.

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

Untuk distribusi berbasis Red Hat akan (biasanya pengguna menjalankan httpd adalah apache):

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

9
2018-06-10 13:14





Saya tahu bahwa ini adalah posting lama, tetapi masih terdaftar sebagai tidak terjawab, jadi saya akan memberikan saran. Jika Anda tidak dapat menemukan pengguna atau grup mana Apache dijalankan, mungkin cobalah membuka file httpd.conf. Harus ada entri di sana untuk "Pengguna" dan "Grup". Anda tidak hanya dapat melihat pengguna mana Apache seharusnya dijalankan, tetapi Anda dapat mengubahnya jika Anda merasa perlu melakukannya.


8
2018-04-23 07:53





Anda dapat menyertakan baris kode dalam skrip PHP Anda:

echo exec('whoami');

7
2017-09-26 02:08



Perhatikan di sini, ini menunjukkan pengguna bahwa PHP berjalan di bawah, bukan pengguna Apache. Jika menggunakan mod_php ini sama tetapi jika, seperti sekarang sangat umum, Anda menggunakan sesuatu yang lain (seperti php_fpm) mereka dapat dengan mudah berbeda. - benz001


Menggunakan apachectl -S, yang akan menunjukkan sesuatu kepada pengguna dan grup Apache, sesuatu seperti ini:

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

7
2017-09-11 00:28



Terima kasih, di mac saya, saya melihat apache berjalan sebagai '_www'. - Mercury


Kode ini akan - lebih atau kurang - secara alfabet mencantumkan semua pengguna yang menjalankan proses non-root apache (atau yang namanya berisi apache)

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

5
2018-03-06 12:28



Daftar ini mungkin akan menyertakan pengguna yang menjalankan proses seperti 'grep apache', seperti diri Anda yang baik. - mwfearnley


  • Untuk mengetahui pengguna, Anda cukup menggunakan ps aux | grep apache saat sedang berjalan.
  • Anda tidak perlu, tetapi jika Apache berjalan sebagai root ada masalah keamanan.
  • Ketiga, mengubah pengguna Apache akan mengubah haknya untuk mengakses beberapa direktori. Anda perlu memastikan bahwa / var / www (atau di mana pun Anda memiliki situs web Anda) dapat diakses oleh pengguna dan grup baru.
  • Pada sistem yang telah saya lihat, apache selalu diinstal menggunakan apache: apache (atau serupa) sebagai pengguna dan grup, jadi mungkin sudah diatur seperti itu.

CATATAN: Ini adalah jawaban yang sama dengan yang saya berikan Stackoverflow.


4
2017-08-01 14:49





Atau Anda dapat memeriksa file konfigurasi apache dan mencari pemilik & grup.


2
2018-04-23 15:33





Seperti yang disarankan oleh Noyo sini:

APACHE_USER=$(ps axho user,comm|grep -E "httpd|apache"|uniq|grep -v "root"|awk 'END {if ($1) print $1}')

Lalu:

echo $APACHE_USER

2
2018-01-03 11:36



Dapatkan pengguna (baris perintah ubuntu): echo $ APACHE_USER - Jadeye