سؤال معرفة ما المستخدم أباتشي يعمل على النحو؟


أرغب في تأمين دليل تحميل الملفات على الخادم الخاص بي كما هو موضح بشكل جميل هنا ، ولكن لدي مشكلة واحدة قبل أن أتمكن من اتباع هذه التعليمات. لا أعرف ما الذي يشغله مستخدم Apache باسم.

لقد وجدت اقتراحًا يمكنك البحث فيه في httpd.conf وسيكون هناك سطر "مستخدم" ، ولكن لا يوجد مثل هذا السطر في ملف httpd.conf الخاص بي ، لذلك أعتقد أن Apache يعمل كمستخدم افتراضي. لا أستطيع معرفة ما هو ، على الرغم من.

إذن ، سؤالي هو (هم):

  • كيف أجد ما هو الافتراضي المستخدم هو
  • أحتاج لتغيير المستخدم الافتراضي
  • إذا كان الجواب نعم ، وقمت بتغيير المستخدم الافتراضي عن طريق تحرير httpd.conf ، هل من المحتمل أن يفسد أي شيء؟

شكر!


191
2018-03-24 16:22


الأصل


لماذا تم التراجع عن هذا السؤال؟ نعم ، لقد تم تحديثه لأنه تمت الإجابة عليه في مكان ما ، ولكن لا أرى حاجة إلى التصويت؟ إنه سؤال جيد للغاية؟ ولعل من شأن الناخب الذي ناخذه أن يهتم بإضافة تعليق بناء حول هذا الأمر؟ - Bryan
قد ترغب في نشر هذا التحديث كإجابة ، وقبوله ، كما أنت موجود حاليًا في قائمة انتظار "لم تتم الإجابة". - Fahad Sadah
إجراء 1+ لإخباره على StackOverflow ؛ يبدو أن بعض المستخدمين يصرون على تشغيل المستخدمين الجدد - wruckie
السؤال المرتبط لم يعد موجودًا - pal4life
السؤال التالي: ما يجب القيام به لأن واحد من اثنين من المستخدمين ، مثل root و www-data. كيف يمكنك إعطاء مجموعة أباتشي "الصحيحة" إذنًا للوصول إلى شيء ما؟ - jww


الأجوبة:


ps aux | egrep '(apache|httpd)' عادة سوف تظهر ما هو اباتشي.

عادةً لا تحتاج إلى تغيير المستخدم الافتراضي ، فعادةً ما يكون "لا أحد" أو "apache" مستخدمًا جيدًا. طالما لا "الجذر" ؛)

تحرير: أكثر دقة القيادة لاصطياد اباتشي الثنائيات أيضا


194
2018-04-19 23:19



نعم ، أو سيكون www-data على Ubuntu. - gravyface
... وديبيان. :) - cubuspl42
يوضح هذا الأمر قائمة بالأشياء ، معظمها من apache ولكن 1 من root جدا. - User
لدي 3 عمليات (/usr/sbin/apache2 -k start) ، مستخدم واحد هو root واثنين آخرين www-data. هل يجب علي القلق؟ - zundi
zundi ، تبدأ الخدمة كجذر للقيام بأشياء مثل الربط بالمنافذ المحجوزة (على سبيل المثال ، 80 و 443). ثم يبدأ مهما كان عدد العمليات المكون ، للقيام بعمل خادم الويب ، وأي مهام أخرى ، مثل المستخدمين المحددين. وبهذه الطريقة يتم التعامل مع الطلبات من خلال عمليات غير متميزة. ستلاحظ أن المعرّف الأصل (PPID) هو نفسه لجميع العمليات الأخرى. هذه الفكرة مع PID لعملية واحدة تعمل كجذر. - Kevin


يمكنك تجربة الأمر التالي:

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

31
2018-04-23 13:53



أنا أحب هذه الإجابة ، أفضل (أكثر عمومية) من الإجابة الأكثر ربحًا. شكر - pgr


وفقا ل ubuntuforums.org، على أوبونتو المستخدم الافتراضي ل apache2 هو www-data.

رأيت أن يكون صحيحا على أوبونتو 13.10 بذيء.


من عند لارس نودن على المنتدى أعلاه.

للتأكد مما يتم تعيينه بالفعل للمستخدم ، تحقق من ملفات التكوين الفعلية.   الملف المظلة apache2.conf سيكون لديك شيء مثل ما يلي ،

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

هذا هو إشارة إلى متغيرات البيئة المحددة في /etc/apache2/envvars.    mod_suexec يسمح أيضًا بتشغيل البرامج النصية كمستخدم ومجموعة مختلفين.

للعثور على أي مضيف ظاهري ، والذي قد يستخدم مستخدمين أو مجموعات بديلة أو كليهما ، تحقق من التهيئات.

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

لتوزيعات ريد هات القائمة سيكون (عادة ما يكون المستخدم الذي يستخدم httpd هو apache):

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

9
2018-06-10 13:14





أعلم أن هذه رسالة قديمة ، ولكنها لا تزال مدرجة على أنها بلا إجابة ، لذا سأقدم اقتراحًا. إذا لم تتمكن من العثور على المستخدم أو المجموعة التي تعمل بنظام Apache ، فربما حاول فتح الملف httpd.conf. يجب أن يكون هناك إدخال هناك "المستخدم" و "المجموعة". لا يمكنك فقط رؤية المستخدم الذي من المفترض أن يكون أباتشي قيد التشغيل ، ولكن يمكنك تغييره إذا كنت تشعر بالحاجة إلى القيام بذلك.


8
2018-04-23 07:53





يمكنك تضمين سطر من التعليمات البرمجية في البرنامج النصي PHP الخاص بك:

echo exec('whoami');

7
2017-09-26 02:08



احترس من هنا ، وهذا يدل على أن المستخدم يعمل تحت PHP ، وليس مستخدم أباتشي. في حالة استخدام mod_php ، تكون هذه هي نفسها ، ولكن إذا كنت تستخدم شيئًا آخر (مثل php_fpm) ، يمكن أن تكون مختلفة بسهولة. - benz001


استعمال apachectl -S، والتي ستُظهر شيئًا لمستخدمي Apache ومجموعتهم ، شيء من هذا القبيل:

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

7
2017-09-11 00:28



شكرا ، على ماك بلدي أرى أن اباتشي يعمل باسم '_www'. - Mercury


هذه التعليمة البرمجية - أكثر أو أقل - تسرد أبجديًا جميع المستخدمين غير الجذر الذين يقومون بتشغيل العمليات apache (أو التي يحتوي اسمها apache)

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

5
2018-03-06 12:28



من المحتمل أن تتضمن القائمة المستخدمين الذين يقومون بتشغيل عمليات مثل "grep apache" ، مثل self self الخاص بك. - mwfearnley


  • لمعرفة المستخدم ، يمكنك ببساطة استخدام ps aux | grep apache بينما هو قيد التشغيل.
  • لست بحاجة إلى ذلك ، ولكن إذا كان Apache يعمل كجذر ، فهناك مشكلات أمنية.
  • ثالثًا ، سيؤدي تغيير مستخدم Apache إلى تغيير حقوقه في الوصول إلى بعض الأدلة. يجب أن تتأكد من أن / var / www (أو أينما كانت مواقع الويب الخاصة بك) متاح للمستخدم والمجموعة الجديدة.
  • على الأنظمة التي نظرت إليها ، تم تثبيت Apache دائمًا باستخدام apache: apache (أو ما شابه) كمستخدم ومجموع ، لذلك ينبغي تعيينها بالفعل على هذا النحو.

ملاحظة: هذه هي نفس الإجابة التي قدمتها ستاكوفيرفلوو.


4
2017-08-01 14:49





أو يمكنك التحقق من ملف تكوين apache والبحث عن المالك والمجموعة.


2
2018-04-23 15:33





كما اقترحه نويو هنا:

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

وثم:

echo $APACHE_USER

2
2018-01-03 11:36



الحصول على المستخدم (سطر الأوامر ubuntu): صدى $ APACHE_USER - Jadeye


نهج بديل ، على الأقل بالنسبة إلى توزيعات ديبيان / أوبونتو المستندة إلى ، هو استخدم نفس الطريقة التي يقوم Apache بها لتعيين المستخدم والمجموعة: مصدر /etc/apache2/envvars


1
2018-02-04 00:55