फ़ाइलों को अपलोड करने के लिए सही अनुमतियाँ सेट करना


12

मेरे पास एक php स्क्रिप्ट है जो एक फ़ाइल को "अपलोड" नामक निर्देशिका में अपलोड करती है। काम करने पर मुझे अपलोड करने का एकमात्र तरीका यह है कि मैं क्या करूं:

chmod 777 uploads

मुझे पता है कि यह सही नहीं है, लेकिन मुझे नहीं पता कि मैं इसे काम करने के लिए क्या करने वाला हूं।

सर्वर जानकारी: अमेज़न EC2 पर T1-Micro Amazon Linux AMI 2013.03

प्रशन:

  • मुझे कैसे पता चलेगा कि उपयोगकर्ताओं को एक्सेस की आवश्यकता क्या है ... जैसे, एपाचे या वेब सर्वर के लिए उपयोगकर्ता का नाम क्या है?

  • मुझे किस स्तर तक पहुंच की आवश्यकता है और मैं यह करने के लिए किस कमांड का उपयोग करूंगा।

धन्यवाद!

संपादित करें: मुझे स्टैक ओवरफ्लो पर बहुत सारे उत्तर मिले जो मैं शोध करूंगा। उदाहरण के लिए

/programming/3642241/php-file-upload-permissions

/programming/10842880/setting-permissions-in-php-on-server

/programming/8948537/permission-denied-when-attempting-to-upload-file-with-php

धन्यवाद

जवाबों:


20

चलाने की कोशिश करें:

ps -ef | grep apache

और अपाचे सर्वर से संबंधित बाएं-सबसे कॉलम को देखें। यह वह उपयोगकर्ता है जो अपाचे चला रहा है, और वंशानुक्रम द्वारा भी पीएचपी।

इस उपयोगकर्ता को अपलोड निर्देशिका का स्वामित्व बदलें और अनुमतियों को थोड़ा सीमित करें, उदाहरण के लिए यदि वेब सर्वर उपयोगकर्ता www-dataउसी नाम के समूह का है (नमूना पथ का उपयोग करके /var/www/uploads):

sudo chown www-data:www-data /var/www/uploads
sudo chmod 755 /var/www/uploads

(या जो भी अनुमतियाँ आप इस उदाहरण में चाहते हैं)। मैं sudoउदाहरण कमांड्स में उपयोग करता हूं - मुझे नहीं पता कि सुपरसीसर विशेषाधिकारों को प्राप्त करने के लिए इस संबंध में EC2 सिस्टम कैसे सेट किए जाते हैं।

यदि आपने पहले ही फाइलें / निर्देशिकाएं अपलोड कर दी हैं, तो आप उन पर स्वामित्व और अनुमतियाँ भी बदल सकते हैं। ऐसा करने के लिए, 777अधिक उचित अनुमतियों से, आप चला सकते हैं:

sudo chown -R www-data:www-data /var/www/uploads
sudo chmod -R 755 /var/www/uploads
sudo find /var/www/uploads -type f -exec chmod -x {} \;

यदि आप उनमें से प्रत्येक भाग को नहीं समझते हैं, तो "आँख बंद करके" चलाएं। manकुछ भी अस्पष्ट होने पर पृष्ठों की जाँच करें (यह बिल्कुल सीधा होना चाहिए)।


धन्यवाद। इससे काफी मदद मिली। अपाचे उपयोगकर्ता है। sudo chown और sudo chmod कमांड दोनों काम करते हैं।
fun_programming 20

स्पष्ट और सीधा समाधान, बहुत बहुत धन्यवाद। अब मुझे किसी भी अधिक जोखिम वाले 777 अनुमति की आवश्यकता नहीं है
lhrec_106
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.