जेल्ड एसएफटीपी के लिए लेखन अनुमति बदलना लॉगिन से इनकार करता है


14

मैंने कई वेबसाइटों और फ़ोरमों पर स्काउट किया है कि कैसे एक SFTP उपयोगकर्ता को सेटअप करने के लिए जो कि CHROOT का उपयोग करके एक निश्चित निर्देशिका में जेल जाता है। यहां वे चरण हैं जिनका मैंने अनुसरण किया है, लेकिन मुझे काम करने के लिए लिखने की अनुमति नहीं मिल सकती है।

सेट अप

sshd_config

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp


Match group webmaster
        X11Forwarding no
        ChrootDirectory %h
        AllowTcpForwarding no
        ForceCommand internal-sftp

फोल्डर बनाएं

mkdir /var/www/sites

उपयोगकर्ता और समूह बनाएँ

useradd uploader
passwd uploader
usermod -d /var/www/sites uploader
groupadd webmaster uploader
groupadd www-data uploader

अनुमतियाँ और स्वामित्व

chown root:root /var/www
chmod 755 /var/www/sites

अब इन सेटिंग्स के साथ उपयोगकर्ता अपलोडर होम निर्देशिका में SFTP में सक्षम है, लेकिन निर्देशिका में लिखने में असमर्थ है।

इसमें 2 विशिष्ट त्रुटियां हैं, मैं या तो लॉगिन नहीं कर सकता या मेरे पास लिखने की अनुमति नहीं है।

लॉगिन त्रुटि

Error:    Network error: Software caused connection abort
Error:    Could not connect to server


Changing permissions of /var/www/sites to 775 or 777 causes login error.
chown /var/www/sites to uploader:root causes login error.
chwon root:webmaster or root:www-data I have no write permissions

मैं अंत में यह पता लगाने की कोशिश कर रहा हूं और अगर कोई मुझे सही दिशा में ले जा सकता है तो मैं इसकी बहुत सराहना करूंगा।

धन्यवाद।

जवाबों:


16

समाधान मिल गया। उपयोगकर्ता को जेल हो गई है /var/www/sites। मैंने फिर एक और फ़ोल्डर बनाया /var/www/sites/site1

मैं उपयोग करता हूं:

chown root:webmaster /var/www/sites/site1 
chmod 775 /var/www/sites/site1

इसने होम डाइरेक्टरी को लॉगिन करने के लिए सही अनुमति देने में सक्षम बनाया और फिर अगले फ़ोल्डर में लिखने में सक्षम हो गया।

यदि उपयोगकर्ता को राइट टू एक्सेस की आवश्यकता है /var/www/sites, तो आपको उस उपयोगकर्ता को जेल करना होगा, /var/wwwजिसके पास root:root755 का स्वामित्व और अनुमतियां हैं। आपको फिर /var/www/sitesरूट का स्वामित्व देने की आवश्यकता है : (आपका समूह) और 775 की अनुमतियां।


1

शायद सबसे बड़ा समाधान है:

mkdir /var/www/sites/myfirstuser/hisownsite
mkdir /var/www/sites/myseconduser/hisownsite

...

chown root:root /var/www/sites /var/www/sites/{myfirstuser,myseconduser} && chmod 755 /var/www/sites/{myfirstuser,myseconduser}

chmod 775 /var/www/sites/myfirstuser/hisownsite
chmod 775 /var/www/sites/myseconduser/hisownsite
chgrp www-data /www/sites/myfirstuser/hisownsite /var/www/sites/myseconduser/hisownsite

उपयोगकर्ताओं को जोड़ें:

useradd -d /var/www/sites/myfirstuser -s /bin/false -g www-data  dev1
useradd -d /var/www/sites/myseconduser -s /bin/false -g www-data dev2
passwd dev1
passwd dev2

फिर, आपके द्वारा बनाए गए प्रत्येक उपयोगकर्ता के लिए, इस तरह से एक ssh टैग जोड़ें: (आप "मैच उपयोगकर्ता" के बजाय अपने उदाहरण में "मिलान समूह" निर्देश का भी उपयोग कर सकते हैं)

Match User dev1
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

Match user dev2
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

इसलिए आप उन सभी उपयोगकर्ताओं को प्रबंधित कर सकते हैं जिन्हें आपको एक विकृत वातावरण में ज़रूरत है।

हथ, फेब्रीज़ियो


अपना अंतिम कोड ब्लॉक करें: Matchअल्पविराम से अलग की गई सूचियों में कई लक्ष्यों का समर्थन करें, इसलिए हम बहुत सरल / सुव्यवस्थित कर सकते हैं कि दोनों उपयोगकर्ताओं के लिए ओवरराइड्स का एक सेट होने से, शीर्षक सेMatch User dev1,dev2
underscore_d

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