सवाल यह पता लगाना कि अपाचे किस उपयोगकर्ता के रूप में चल रहा है?


मैं अपने सर्वर पर एक फ़ाइल अपलोड निर्देशिका को सुरक्षित रूप से वर्णित करना चाहता हूं जैसा कि यहां वर्णित है, लेकिन इन निर्देशों का पालन करने से पहले मुझे एक समस्या है। मुझे नहीं पता कि अपाचे किस उपयोगकर्ता के रूप में चल रहा है।

मुझे एक सुझाव मिला है कि आप httpd.conf में देख सकते हैं और एक "उपयोगकर्ता" लाइन होगी, लेकिन मेरी httpd.conf फ़ाइल में ऐसी कोई पंक्ति नहीं है, इसलिए मुझे लगता है कि अपाचे डिफ़ॉल्ट उपयोगकर्ता के रूप में चल रहा है। मैं यह नहीं पता कि वह क्या है, हालांकि।

तो, मेरा सवाल है (हैं):

  • मैं डिफ़ॉल्ट कैसे पता लगा सकता हूं उपयोगकर्ता है
  • क्या मुझे डिफ़ॉल्ट उपयोगकर्ता को बदलने की ज़रूरत है
  • अगर जवाब हाँ है और मैं बदलता हूं httpd.conf संपादित करके डिफ़ॉल्ट उपयोगकर्ता, क्या यह कुछ भी खराब करने की संभावना है?

धन्यवाद!


191
2018-03-24 16:22


मूल


यह सवाल क्यों कम हो गया है? हां, इसे अद्यतन किया गया है क्योंकि इसे उत्तर दिया गया है, लेकिन मुझे वोट देने की कोई आवश्यकता नहीं है? यह एक बिल्कुल अच्छा सवाल है? शायद हमारे नीचे मतदाता इस बारे में एक रचनात्मक टिप्पणी जोड़ने की देखभाल करेंगे? - Bryan
आप उस अद्यतन को उत्तर के रूप में पोस्ट करना चाहते हैं, और इसे स्वीकार कर सकते हैं, क्योंकि वर्तमान में आप अनुत्तरित कतार में हैं। - Fahad Sadah
StackOverflow पर बताया जाने के लिए +1; कुछ उपयोगकर्ता नए उपयोगकर्ताओं को चलाने पर जोर देते हैं - wruckie
लिंक्ड सवाल अब और मौजूद नहीं है - pal4life
अगला प्रश्न: क्या करना है क्योंकि यह दो उपयोगकर्ताओं में से एक है, जैसे root तथा www-data। आप "सही" अपाचे समूह को कुछ एक्सेस करने की अनुमति कैसे देते हैं? - jww


जवाब:


ps aux | egrep '(apache|httpd)' आम तौर पर दिखाएगा कि अपाचे किस प्रकार चल रहा है।

आम तौर पर आपको डिफ़ॉल्ट उपयोगकर्ता को बदलने की आवश्यकता नहीं होती है, "कोई नहीं" या "अपाचे" आम तौर पर ठीक उपयोगकर्ता होते हैं। जब तक यह "रूट" नहीं है;)

संपादित करें: अपाचे बाइनरी को पकड़ने के लिए भी अधिक सटीक कमांड


194
2018-04-19 23:19



हाँ, या यह उबंटू पर www-data होगा। - gravyface
... और डेबियन। :) - cubuspl42
वह आदेश मुझे चीजों की एक सूची दिखाता है, जिनमें से अधिकांश apache लेकिन 1 से root भी। - User
मेरे पास 3 प्रक्रियाएं हैं (/usr/sbin/apache2 -k start), एक का उपयोगकर्ता है root और दूसरे दो www-data। क्या मुझे चिंतित होना चाहिए? - zundi
@ जुंडी, आरक्षित बंदरगाहों (जैसे 80 और 443) जैसी चीजों को करने के लिए सेवा रूट के रूप में शुरू होती है। फिर यह परिभाषित उपयोगकर्ताओं के रूप में वेब सर्वर सर्वर, और किसी भी अन्य कार्यों को करने के लिए प्रक्रियाओं की कॉन्फ़िगर की गई संख्या शुरू होती है। इस तरह अनुरोधों को गैर-विशेषाधिकार प्राप्त प्रक्रियाओं द्वारा नियंत्रित किया जा रहा है। आप देखेंगे कि माता-पिता आईडी (पीपीआईडी) अन्य सभी प्रक्रियाओं के लिए समान है। रूट के रूप में चल रही एक प्रक्रिया के लिए वह विचार पीआईडी ​​के साथ है। - 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

Red Hat आधारित वितरण के लिए यह होगा (आमतौर पर इसका उपयोगकर्ता httpd चल रहा है apache):

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

9
2018-06-10 13:14





मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन यह अभी भी अनुत्तरित के रूप में सूचीबद्ध है, इसलिए मैं एक सुझाव दूंगा। यदि आप नहीं पाते कि कौन सा उपयोगकर्ता या समूह अपाचे चल रहा है, तो शायद 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, जो कुछ अपाचे उपयोगकर्ता और समूह दिखाएगा, ऐसा कुछ:

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' जैसी प्रक्रियाएं चला रहे हैं, जैसे आपका बढ़िया स्व। - mwfearnley


  • उपयोगकर्ता को खोजने के लिए, आप बस उपयोग कर सकते हैं ps aux | grep apache जबकि यह चल रहा है।
  • आपको इसकी आवश्यकता नहीं है, लेकिन यदि अपाचे रूट के रूप में चल रहा है तो सुरक्षा समस्याएं हैं।
  • तीसरा, अपाचे के उपयोगकर्ता को बदलने से कुछ निर्देशिकाओं तक पहुंचने के अपने अधिकार बदल जाएंगे। आपको यह सुनिश्चित करने की ज़रूरत है कि / var / www (या जहां भी आपकी वेबसाइट हों) नए उपयोगकर्ता और समूह के लिए सुलभ है।
  • सिस्टम पर मैंने देखा है, अपाचे का उपयोग करके अपाचे हमेशा इंस्टॉल किया गया था: अपाचे (या समान) उपयोगकर्ता और समूह के रूप में, इसलिए इसे पहले से ही सेट किया जाना चाहिए।

नोट: यह वही जवाब है जिसे मैंने दिया था स्टैक ओवरफ़्लो


4
2017-08-01 14:49