PHP/अपाचे के साथ अपलोड फ़ोल्डर के लिए उचित अनुमतियां क्या हैं?

मूल प्रश्न के लिए खेद है - मैं एक .NET डेवलपर हूं और LAMP सेटअप के साथ अधिक अनुभव नहीं है।

मेरे पास एक PHP साइट है जो अपलोड को किसी विशिष्ट फ़ोल्डर में अनुमति देगी। मुझे बताया गया है कि अपलोड करने के लिए अपलोड प्रक्रिया के लिए इस फ़ोल्डर को वेबसर्वर उपयोगकर्ता के स्वामित्व की आवश्यकता है, इसलिए मैंने फ़ोल्डर बनाया और फिर अनुमतियां सेट की:

chown apache:apache -R uploads/
chmod 755 -R uploads/

एकमात्र समस्या यह है कि एफ़टीपी उपयोगकर्ता अपलोड की गई फाइलों को बिल्कुल संशोधित नहीं कर सकता है।

क्या कोई अनुमति सेटिंग है जो मुझे अभी भी फ़ाइलों को अपलोड करने की अनुमति देगी और फिर बाद में उन्हें वेबसर्वर उपयोगकर्ता के अलावा उपयोगकर्ता के रूप में संशोधित करेगी?

0
ro fr bn

8 उत्तर

मैं जोड़ दूंगा कि यदि आप SELinux का उपयोग कर रहे हैं, तो आपको यह सुनिश्चित करने की आवश्यकता है कि प्रकार संदर्भ tmp_t है, आप चॉकन उपयोगिता का उपयोग करके इसे पूरा कर सकते हैं

chcon -t tmp_t अपलोड

0
जोड़ा

आप अपाचे उपयोगकर्ता और एफ़टीपी उपयोगकर्ता दोनों के सदस्यों के रूप में एक नया समूह बना सकते हैं और फिर अपलोड फ़ोल्डर 775 पर अनुमति बना सकते हैं। यह अपाचे और एफ़टीपी उपयोगकर्ताओं को फ़ोल्डर में फ़ाइलों को लिखने की क्षमता देनी चाहिए, लेकिन हर किसी को रखें उन्हें संशोधित करने से।

0
जोड़ा
एक अपलोड फ़ोल्डर में केवल jpg, gif आदि फ़ाइलें होनी चाहिए। निश्चित रूप से, कहें, किसी द्वारा अपलोड की गई PHP फ़ाइलें, या खोल स्क्रिप्ट फ़ाइलें। अपलोड फ़ोल्डर में PHP फ़ाइलों को निष्पादित करने के लिए अपाचे सर्वर से बचने का कोई तरीका है?
जोड़ा लेखक Toskan, स्रोत
भूलें कि आप chmod u + rwX पर जाकर जादूगर संख्याओं से बच सकते हैं, जाओ + r theolder !
जोड़ा लेखक Kzqai, स्रोत
शायद यह वह नहीं है जो वह मायने रखता है क्योंकि वह उस फाइल को अपलोड करने का उल्लेख करता है जहां वेबसाइट का उपयोगकर्ता फाइल अपलोड करता है। वहां आपको अनुमति 777 की आवश्यकता है
जोड़ा लेखक Luka Govedi?, स्रोत

यदि आप वास्तव में ऐसा करना चाहते हैं तो मैं रयान के जवाब के साथ जाऊंगा।

सामान्य रूप से * निक्स पर्यावरण पर, आप हमेशा जितनी संभव हो सके छोटी अनुमति देने पर गलती करना चाहते हैं।

10 में से 9 बार, 755 इस के लिए आदर्श अनुमति है - फाइलों को संशोधित करने की क्षमता वाला एकमात्र उपयोगकर्ता वेबसर्वर होगा। यदि आपको वास्तव में इसे बदलने की आवश्यकता है तो इसे अपने समूह उपयोगकर्ता के साथ 775 में बदलें।

Since you're new to PHP by your own admission, here's a helpful link for improving the security of your upload service: move_uploaded_file

0
जोड़ा

या कम से कम 766।

  • पढ़ें = 4
  • लिखें = 2
  • execute = 1

7 = पढ़ें + लिखें + निष्पादित करें

6 = पढ़ें + लिखें

  • पहला नंबर: मालिक
  • दूसरा नंबर: समूह
  • तीसरा नंबर: अन्य उपयोगकर्ता
0
जोड़ा
फ़ोल्डर पर 766 नहीं होगा अन्य लोगों को वहां फाइलें अपलोड करने और दुर्भावनापूर्ण कोड भी अपलोड करने की अनुमति देंगी?
जोड़ा लेखक Fahad Uddin, स्रोत
अपने अपलोड फ़ोल्डर में php/या अन्य स्क्रिप्ट निष्पादन अक्षम करें
जोड़ा लेखक Ravinder Payal, स्रोत

@Ryan Ahearn के उत्तर के आधार पर, मैंने उबंटू 16.04 पर एक उपयोगकर्ता front बनाने के लिए किया है जिसमें केवल nginx के वेब के लिए अनुमति है डीआईआर <�कोड>/var/www/html ।

कदम:

* pre-steps:
    * basic prepare of server,
    * create user 'dev'
        which will be the owner of "/var/www/html",
    * 
    * install nginx,
    * 
* 
* create user 'front'
    sudo useradd -d /home/front -s /bin/bash front
    sudo passwd front

    # create home folder, if not exists yet,
    sudo mkdir /home/front
    # set owner of new home folder,
    sudo chown -R front:front /home/front

    # switch to user,
    su - front

    # copy .bashrc, if not exists yet,
    cp /etc/skel/.bashrc ~front/
    cp /etc/skel/.profile ~front/

    # enable color,
    vi ~front/.bashrc
    # uncomment the line start with "force_color_prompt",

    # exit user
    exit
* 
* add to group 'dev',
    sudo usermod -a -G dev front
* change owner of web dir,
    sudo chown -R dev:dev /var/www
* change permission of web dir,
    chmod 775 $(find /var/www/html -type d)
    chmod 664 $(find /var/www/html -type f)
* 
* re-login as 'front'
    to make group take effect,
* 
* test
* 
* ok
* 

0
जोड़ा

मैं एक एफटीपी समूह बनाने के विचार का समर्थन करूंगा जिसके पास अपलोड करने का अधिकार होगा। हालांकि, मुझे नहीं लगता कि 775 अनुमति देना आवश्यक है। 7 पढ़ने, लिखने, निष्पादित करने के लिए खड़ा है। आम तौर पर आप कुछ समूहों को पढ़ने और लिखने की अनुमति देना चाहते हैं, लेकिन मामले के आधार पर निष्पादन आवश्यक नहीं हो सकता है।

0
जोड़ा

महत्वपूर्ण यह है कि apache उपयोगकर्ता और समूह में कम से कम पढ़ें पहुंच होनी चाहिए और कुछ मामलों में निष्पादित पहुंच होनी चाहिए। बाकी के लिए आप 0 पहुंच दे सकते हैं।

यह सबसे सुरक्षित सेटिंग है।

0
जोड़ा

Remember also CHOWN or chgrp your website folder. Try myusername# chown -R myusername:_www uploads

0
जोड़ा