chrooted sftp उपयोगकर्ता को लिखने की अनुमति / var / www के साथ


10

मैं इस सेटअप के बारे में भ्रमित हो रहा हूं जिसे मैं तैनात करने की कोशिश कर रहा हूं। मुझे आशा है कि आप लोगों में से कोई मुझे एक हाथ उधार दे सकता है: बहुत सराहना की।

पृष्ठभूमि की जानकारी

सर्वर Debian 6.0, ext3, Apache2 / SSL और Nginx के साथ सामने की तरफ रिवर्स प्रॉक्सी के रूप में है। मुझे Apache रूट डायरेक्टरी (/ var / www) तक sftp एक्सेस प्रदान करने की आवश्यकता है, जिससे यह सुनिश्चित हो सके कि sftp उपयोगकर्ता RWX अनुमतियों के साथ उस पथ पर क्रॉल किया गया है।

यह सब / var / www में किसी भी डिफ़ॉल्ट अनुमति को संशोधित किए बिना।

drwxr-xr-x  9 root root  4096 Nov  4 22:46 www

अंदर / var / www

-rw-r----- 1 www-data www-data     177 Mar 11  2012 file1
drwxr-x--- 6 www-data www-data    4096 Sep 10  2012 dir1
drwxr-xr-x 7 www-data www-data    4096 Sep 28  2012 dir2
-rw------- 1 root     root          19 Apr  6  2012 file2
-rw------- 1 root     root     3548528 Sep 28  2012 file3
drwxr-x--- 6 www-data www-data    4096 Aug 22 00:11 dir3
drwxr-x--- 5 www-data www-data    4096 Jul 15  2012 dir4
drwxr-x--- 2 www-data www-data  536576 Nov 24  2012 dir5
drwxr-x--- 2 www-data www-data    4096 Nov  5 00:00 dir6
drwxr-x--- 2 www-data www-data    4096 Nov  4 13:24 dir7

मैंने क्या कोशिश की है

  1. एक नया समूह सुरक्षित दस्ता बनाया
  2. एक नया sftp उपयोगकर्ता बनाया, Secureftp और www-data समूहों के साथ भी nologin शेल में शामिल हुआ। होमेडिर है /
  3. के साथ संपादित sshd_config
Subsystem sftp internal-sftp 
AllowTcpForwarding no 
Match Group <secureftp> 
      ChrootDirectory /var/www 
      ForceCommand internal-sftp

मैं sftp उपयोगकर्ता के साथ लॉगिन कर सकता हूं, फाइलों को सूचीबद्ध कर सकता हूं लेकिन कोई लिखित कार्रवाई की अनुमति नहीं है। Sftp उपयोगकर्ता www-data समूह में है, लेकिन / var / www में अनुमतियों को समूह बिट के लिए + x पढ़ा / पढ़ा जाता है ... यह काम नहीं करता है।

मैंने ACL के साथ भी प्रयास किया है, लेकिन जैसा कि मैं sftp उपयोगकर्ता के लिए / var / www (dirs और files recursively) के लिए ACL RWX अनुमतियां लागू करता हूं, यह यूनिक्स अनुमतियों को भी बदल देगा, जो कि मैं नहीं चाहता।

यहां मैं क्या कर सकता हूं?

मैं सोच रहा था कि मैं उपयोगकर्ता www-data को sftp के रूप में लॉगिन करने में सक्षम कर सकता हूं, ताकि यह उन फाइलों / डायरियों को संशोधित करने में सक्षम हो जाए जो www-data के पास / var / www में हैं। लेकिन किसी कारण से मुझे लगता है कि यह एक मूर्खतापूर्ण कदम होगा।


मुझे नहीं लगता कि अनुमति के परिवर्तन के बिना यह संभव है।
उन्नीकृष्णन

जवाबों:


15

मैंने जो किया है, वह अपने उपयोगकर्ताओं को उनके घर निर्देशिकाओं के mount --bindलिए तैयार करना है और फिर उनके घर निर्देशिकाओं में एक लिंक बनाने के लिए उपयोग किया जाता है।

तब मैं setfaclयह सुनिश्चित करने के लिए इस्तेमाल किया गया था कि www-dataमेनटेन निर्देशिका में नई फाइलों पर अनुमति लिखें। इस आशय की पुनरावृत्ति होगी /var/www, जो आप करना चाहते हैं।

g+sनिर्देशिका पर सेट करके , इसके भीतर बनाई गई सभी नई फाइलें और निर्देशिकाएं समूह के स्वामित्व को उसके माता-पिता से प्राप्त कर लेंगी।

useradd someuser
mkdir -p /home/someuser/www
mount --bind /var/www /home/someuser/www
chmod g+s /home/someuser/www
chown -R someuser:www-data /home/someuser/www
setfacl -d -m g::rwx /home/someuser/www

यह ट्रिक काम आना चाहिए।

अपने आरोह को स्थिर बनाए रखें

जाहिर है कि आप चाहते हैं कि जब आप सर्वर को रिबूट करें तो आपकी माउंट्स अभी भी हों। यह आपके लिए माउंट को जोड़ने जितना आसान है /etc/fstab। सभी प्रदाता आपको इस फ़ाइल को छूने नहीं देते हैं, लेकिन अधिकांश करते हैं।

बस इस तरह से लाइनें जोड़ें:

/var/www        /home/someuser/www        none        bind        0        0

आप यह सुनिश्चित करने के लिए रीबूट करना चाह सकते हैं कि यह काम करता है।


1
तथ्य यह है कि जब आप g + s / home / someuser / www को chmod करते हैं और someuser को chown करते हैं: www-data / home / someuser / www यह उसी अनुमतियों और स्वामी को भी स्थानांतरित कर देगा: group / var / www। यह माउंट-बिंद के कारण है। बहुत बहुत धन्यवाद!
बशिष्ठोश

2
मैं आपको बीयर का भुगतान कहां कर सकता हूं? ऐसा लगता है कि यह सब अच्छा है, और Apache sftp-user के बारे में / var / www के मालिक के रूप में शिकायत नहीं करता है। जब मैं एसीएल के रास्ते में गया, तो मैं आपके समाधान के बहुत करीब था, लेकिन मैंने सुसाइड भाग को छोड़ दिया: आप जादू कर रहे हैं, धन्यवाद!
बशीस्तोष
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.