Mac OS X के अंतर्गत Apache 2 साइट फ़ाइलों / फ़ोल्डरों के लिए सही स्वामी / समूह / अनुमतियां


114

वेब पर इस सवाल का मैक-विशिष्ट उत्तर ढूंढना मुश्किल है, इसलिए मैं उम्मीद कर रहा हूं कि कोई व्यक्ति मेरे लिए आराम करने के लिए इसे रख सकता है? मेरी अनुमति मेरी साइटों पर बिखरी हुई है और मुझे यकीन नहीं है कि कैसे उन्हें ठीक करने के बिना बस एक पुनरावर्ती 777 को हर चीज पर पटक दिया जाए जो कि स्पष्ट रूप से गलत है।

धन्यवाद!

जवाबों:


186

यह सबसे प्रतिबंधात्मक और सबसे सुरक्षित तरीका है जो मैंने पाया है, जैसा कि ~/my/web/root/आपकी वेब सामग्री के लिए काल्पनिक निर्देशिका के लिए यहां बताया गया है:

  • प्रत्येक मूल निर्देशिका अपने वेब जड़ के लिए अग्रणी के लिए (उदाहरण के लिए ~/my, ~/my/web, ~/my/web/root):
    • chmod go-rwx DIR (स्वामी के अलावा कोई भी सामग्री तक नहीं पहुंच सकता)
    • chmod go+x DIR ("उपयोगकर्ताओं" को अनुमति देने के लिए _IR सहित "dir" दर्ज करें)
  • sudo chgrp -R _www ~/my/web/root (सभी वेब सामग्री अब समूह _www है)
  • chmod -R go-rwx ~/my/web/root (स्वामी के अलावा कोई भी व्यक्ति वेब सामग्री तक नहीं पहुंच सकता)
  • chmod -R g+rx ~/my/web/root (सभी वेब सामग्री अब _www द्वारा पठनीय / निष्पादन योग्य / दर्ज करने योग्य है)

अन्य सभी समाधान अन्य स्थानीय उपयोगकर्ताओं (जो "स्टाफ" समूह का हिस्सा हैं और साथ ही जाहिर तौर पर "ओ" / अन्य समूह में हैं) के लिए फाइल को छोड़ देते हैं। ये उपयोगकर्ता तब आपके वेब कॉन्फ़िगरेशन फ़ाइलों और लिपियों में डीबी कॉन्फ़िगरेशन, स्रोत कोड, या अन्य संवेदनशील विवरणों को स्वतंत्र रूप से ब्राउज़ और एक्सेस कर सकते हैं, यदि ये आपकी सामग्री का हिस्सा हैं। यदि यह आपके लिए कोई समस्या नहीं है, तो हर तरह से सरल उपायों में से एक के साथ चलें।


3
chmod go+rx DIRअनुमति त्रुटि को फेंकने से पहले मुझे / / उपयोगकर्ता / उपयोगकर्ता नाम निर्देशिका स्तर पर x ध्वज के अलावा रीड एक्सेस देना था । सोचता हूँ क्यों?
भावनव

1
@ माइक, सभी फ़ाइलें और निर्देशिका अभी भी आपके (उपयोगकर्ता) के स्वामित्व में होंगी और अभी भी लेखन योग्य होंगी। Chgrp केवल "_www" समूह को फ़ाइलों को पढ़ने की अनुमति देता है ।
dk विटामिन

2
उन प्रणालियों के लिए जो वेबसाइट स्क्रिप्ट्स को अपने स्वयं के फ़ोल्डर बनाने और वेबरॉट के भीतर अपनी फाइलें लिखने की उम्मीद करते हैं (जैसे कई सीएमएस करते हैं) मुझे _www समूह को लिखित अनुमति देनी थी। तो अंतिम चरण बन जाता है chmod -R g+rwx ~/my/web/root। किसी भी आपत्ति या इस @dk विटामिन करने के लिए एक बेहतर तरीका है?
Jpsy

1
@ जेपीवाई को ठीक काम करना चाहिए अगर आपके ऐप को खुद को लिखना है। यह अन्य संभावित सुरक्षा मुद्दों का परिचय देता है यदि अन्य कोड _www के रूप में भी चल रहे हैं (और दुर्भावनापूर्ण रूप से CMS कोड बदल सकते हैं), तो बस सावधान रहें। यदि आप लेखन (जी + डब्ल्यू) को एक गहरी उपनिर्देशिका तक सीमित कर सकते हैं, तो यह बेहतर है।
विटामिन

1
यह अब कुछ साल पुराना है, समय पर मार्च करता है, और ओएस एक्स को बदलना पसंद है कि इसका डिफ़ॉल्ट अपाचे सर्वर समय-समय पर कैसे काम करता है। इसलिए जब यह समाधान अभी भी काम करता है, तो मैं इस बिंदु पर दृढ़ता से स्थानीय वीएम बनाने के वैकल्पिक समाधान की सिफारिश करूंगा ताकि आप स्वयं ओएस एक्स का उपयोग करने के बजाय अपने ऐप्स का परीक्षण कर सकें। देखें: vagrantup.com
dk विटामिन

30

यदि आपको वास्तव में टर्मिनल पसंद नहीं है, तो जीयूआई करने के लिए जीयूआई तरीका आपको बता रहा है:

1) अपने उपयोगकर्ता के घर निर्देशिका पर जाएं ( लूडो मेरा होगा) और फ़ाइल मेनू से निरीक्षक में जानकारी प्राप्त करें चुनें cmdI:

जानकारी विंडो साझाकरण और अनुमतियाँ अनुभाग प्राप्त करें

2) [+] चिह्न alt/optionपर क्लिक करके _www समूह जोड़ें और इसे केवल-पढ़ने की अनुमति दें :

जानकारी जोड़ें उपयोगकर्ता और समूह हाइलाइट किए गए और वर्ल्ड वाइड वेब सर्वर हाइलाइट किए गए

  • इस प्रकार विचार (अच्छा अभ्यास) अपने उपयोगकर्ता के घर फ़ोल्डर (और हार्ड डिस्क) की जड़ में व्यक्तिगत जानकारी संग्रहीत नहीं है!
  • आप इस चरण को छोड़ सकते हैं यदि ** सभी ** समूह के पास ** केवल-पढ़ने ** की अनुमति है, लेकिन चूंकि AirDrop ** / सार्वजनिक / ड्रॉप बॉक्स ** फ़ोल्डर ज्यादातर बेकार है ...

3) अपने यूजर साइट्स फोल्डर के इंफो इंस्पेक्टर को दिखाएं और फिर स्टेप 2 को फिर से तैयार करें गियर एक्शन सब-मेन्यू में सेलेक्ट इनकमिंग आइटम्स ... :

जानकारी प्राप्त करें कार्रवाई उप-मेनू संलग्न आइटम पर लागू करें ... हाइलाइट किया गया

Voilà 3 चरण और GUI एकमात्र तरीका ...


2
यहाँ मेरी मदद नहीं की, लेकिन ALT + [+]चाल के बारे में जानना अच्छा है । धन्यवाद।
टॉम

1
यह अब तक का सबसे अच्छा तरीका है, alt + क्लिक ठीक से _www उपयोगकर्ता दिखाता है
CoolArts

यह सच है अगर आपके पास अतिथि फ़ाइल साझाकरण सक्रिय है या एक दुर्भावनापूर्ण php स्क्रिप्ट स्थापित है ... सुनिश्चित करें कि केवल सार्वजनिक और साइट फ़ोल्डर है जो सभी द्वारा "पठनीय" है। चरण 3 केवल "साइट" फ़ोल्डर पर लागू होता है ... इस प्रकार सामान्य रूप से अन्य फ़ोल्डरों को परिवर्तित नहीं किया जाना चाहिए ...
15:ange पर

इसकी जरूरत नहीं होनी चाहिए। _www हर किसी के समूह में है।
डार्कनॉरॉन

इस ऊंचाई के बारे में जानकर अच्छा लगा [+] !! Thx
रेमी ग्रुमेउ

12

मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन माउंटेन लायन (10.8) में अपग्रेड करने और FollowSymLinksअपने {यूज़रनेम} .conf फ़ाइल (/ in / etc / apache2 / users /) में जोड़ने के लिए किसी ने भी मेरे लिए चाल चली। तो फ़ाइल इस तरह दिखती है:

<Directory "/Users/username/Sites/">
  Options Indexes MultiViews FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>

मैंने एक उपयोगकर्ता "git" बनाया, जिसका मैं उपयोग नहीं करता, और वह सब उस निर्देशिका में उपलब्ध था जिसे संपादित करने के लिए (git.conf)। एक बार जब मैंने उपयोगकर्ता गिट के लिए ऊपर बताए अनुसार फ़ाइल को अपडेट किया - मैंने जो निर्देशिका स्थापित की थी वह एपाचे द्वारा सही ढंग से प्रस्तुत की गई थी। इसका मुझे कोई मतलब नहीं है क्योंकि मेरे उपयोगकर्ता git को बनाई गई निर्देशिकाओं, या अपाचे से कोई लेना देना नहीं है।
ktamlyn

9

2 महीने पुराना धागा, लेकिन पहले से कहीं ज्यादा बेहतर! 10.6 पर, मेरे पास मेरे वेबसर्वर दस्तावेज़ फ़ोल्डर हैं:

owner:root
group:_www
permission:755

_www मैक ओएस एक्स के तहत अपाचे चलाने वाला उपयोगकर्ता है। मैंने तब प्रशासक समूह को पूर्ण अनुमति देने के लिए एक एसीएल जोड़ा था। इस तरह, मैं अभी भी रूट के रूप में प्रमाणित किए बिना अपने व्यवस्थापक उपयोगकर्ता के साथ कोई भी बदलाव कर सकता हूं। इसके अलावा, जब मैं वेबसर्वर को एक फ़ोल्डर में लिखने की अनुमति देना चाहता हूं, तो मैं बस 775 पर chmod कर सकता हूं, सभी को रूट के अलावा छोड़कर: _www केवल पढ़ने / निष्पादित अनुमतियों (मेरे द्वारा लागू किए गए किसी भी ACL को छोड़कर) के साथ


आपको स्वामी को 'मूल' पर सेट करने की आवश्यकता नहीं है, लेकिन यह हानिरहित है। आपको निश्चित रूप से आपके पास ओ + आरएक्स परमिट की आवश्यकता नहीं है - जो किसी भी स्थानीय उपयोगकर्ता को आपकी सभी वेब सामग्री ब्राउज़ करने और पढ़ने की सुविधा देता है (संभवत: डीबी पासवर्ड के साथ कॉन्फ़िगर करता है, आदि)
dk विटामिन

1
(मेरे इस सवाल का जवाब नीचे देखें जो इस उत्तर का एक अधिक जटिल संस्करण है, जो सुरक्षा के बारे में उन लोगों के लिए दिलचस्प हो सकता है)
dk विटामिन

टर्मिनल में हम कैसे देखते हैं कि उदाहरण के लिए वर्डप्रेस क्या स्थापित किया गया है (अपनी फ़ाइल अनुमतियों के बारे में) क्योंकि मैं चाहता हूं कि वर्डप्रेस अपने स्वयं के मीडिया अपलोड लिखने में सक्षम हो ...
उतरा

5

मेरे 10.6 सिस्टम पर:

vhosts folder:
 owner:root
 group:wheel
 permissions:755

vhost.conf files:
 owner:root
 group:wheel
 permissions:644

1
महान, धन्यवाद स्टीव, और वेब फ़ाइलों के लिए खुद को? / पुस्तकालय / वेबस्वर / दस्तावेज / पुस्तकालय / वेबसेवर / दस्तावेज / [फ़ाइल] / पुस्तकालय / वेबस्वर / दस्तावेज / [निर्देशिका]
Fo।

0

मेरे लिए उपयोगकर्ता स्वामी व्यवस्थापक उपयोगकर्ता है और समूह _www है और dir के लिए और 764 फ़ाइलों के लिए 775 पर सेट की गई अनुमतियों के साथ काम करता है


0

कैटालिना अपडेट / डेस्कटॉप अनुमतियां

मैं macOS पर साल में एक बार इस पार आता हूं। मैं आमतौर पर अपने डेस्कटॉप पर एक फ़ोल्डर की मेजबानी के लिए apache2 का उपयोग करता हूं।

यदि आप उस desktopफ़ोल्डर को एक्सेस देने की कोशिश कर रहे हैं, जिसके लिए आपको httpd को सभी फ़ोल्डरों तक पहुँच की अनुमति देने के लिए इसका अनुसरण करने की आवश्यकता है: https://apple.stackexchange.com/a/373139/353465


-3

पहले टर्मिनल खोलें और फिर वेब सर्वर की निर्देशिका में जाएं

cd /Library/WebServer/Documents

और फिर इसे टाइप करें और आप क्या करेंगे आप देंगे readऔर writeअनुमति देंगे

sudo chmod -R o+w /Library/WebServer/Documents

यह निश्चित रूप से काम करेगा!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.