इस मैनुअल के साथ प्रयास करें। शायद आपके लिए काम करेंगे।
यह कैसे करना है
Vsftpd और PAM लाइब्रेरी स्थापित करें
संपादित करें /etc/vsftpd.conf
और/etc/pam.d/vsftpd
कस्टम निर्देशिकाओं (उदाहरण के लिए / var / www /) के साथ उपयोगकर्ता accout बनाएँ
सही chmod
और के साथ निर्देशिका सेट करेंchown
सर्वर तक पूर्ण पहुंच के साथ एक व्यवस्थापक उपयोगकर्ता बनाएं
- स्थापित करें
vsftpd
(बहुत सुरक्षित एफ़टीपी डायनम) और libpam-pwdfile
आभासी उपयोगकर्ता बनाने के लिए
मैं एफ़टीपी उपयोगकर्ता बनाना चाहता था, लेकिन मैं स्थानीय यूनिक्स उपयोगकर्ताओं (कोई शेल एक्सेस, कोई होम डायरेक्टरी और इतने पर) को जोड़ना नहीं चाहता था। एक PAM (Pluggable Authentication Modules) आपको वर्चुअल उपयोगकर्ता बनाने में मदद करेगा।
sudo apt-get install vsftpd libpam-pwdfile
- संपादित करें
vsftpd.conf
सबसे पहले आपको मूल फ़ाइल का बैकअप लेना होगा
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
फिर एक नया बनाएँ
sudo vim /etc/vsftpd.conf
निम्नलिखित पंक्तियों को कॉपी और पेस्ट करें। फ़ाइल में केवल ये पंक्तियाँ होनी चाहिए:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- आभासी उपयोगकर्ताओं को पंजीकृत करें
आपके द्वारा उपयोग किए जाने वाले उपयोगकर्ता को पंजीकृत करने के लिए htpasswd
, इसलिए मैं मानता हूं कि आपने apache2
अपने सर्वर पर काम किया है। एक vsftpd
फ़ोल्डर बनाएँ, फिर उसमें कॉन्फ़िगरेशन फ़ाइलें डालें।
sudo mkdir /etc/vsftpd
फिर
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-c का मतलब है कि अगर हम अभी तक मौजूद नहीं हैं तो फाइल को बनाएंगे -d बलों MD5, आपको इसे ubuntu 12.04 पर चाहिए, बस इसे हमेशा उपयोग करें
कमांड एक पासवर्ड के लिए संकेत देगा।
यदि आप बाद में नए उपयोगकर्ता जोड़ना चाहते हैं:
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- PAM को कॉन्फ़िगर करें
/etc/pam.d/vsftpd
फिर से, आपको orignal फ़ाइल का बैकअप लेना होगा
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
और एक नया बनाएँ
sudo vim /etc/pam.d/vsftpd
इन 2 पंक्तियों को कॉपी और पेस्ट करें (यह एकमात्र सामग्री होनी चाहिए)। मैं केवल इन 2 पंक्तियों पर जोर देता हूं, मैंने मूल को बनाए रखते हुए बहुत समय बर्बाद किया और बस इन्हें जोड़ा।
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- शेल एक्सेस के बिना एक स्थानीय उपयोगकर्ता बनाएं
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
आप जांच सकते हैं कि यह आईडी कमांड के साथ बनाया गया है: आईडी vsftpd। हम check_shell पैरामीटर (भले ही आप इसका उपयोग न करें) के कारण / बिन / झूठे शेल के साथ उपयोगकर्ता को परिभाषित करते हैं। जब अंतिम उपयोगकर्ता एफ़टीपी सर्वर से जुड़ता है, तो उनका उपयोग अधिकारों और स्वामित्व के लिए किया जाएगा:
chmod
और chown
।
- पुनः आरंभ करें
vsftpd
सामान्य तरीका init.d का उपयोग सभी बधिरों की तरह करता है
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- निर्देशिका बनाएँ
कॉन्फ़िगरेशन के अनुसार सभी उपयोगकर्ताओं को इस फ़ोल्डर में रखा जाएगा: / var / www / user1।
आपको उन्हें विशेष अधिकारों के साथ बनाने की आवश्यकता है: रूट फ़ोल्डर को राइट नहीं किया जा सकता है!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
नोट: उपयोगकर्ता रूट डायरेक्टरी में फाइल या फोल्डर नहीं बना सकता है।
में vsftpd.conf
हमारे पास chroot_local_user=YES
तो उपयोगकर्ता अपने फ़ोल्डर का कुछ भी बाहर नहीं देख सकता। उसके लिए, सर्वर इस तरह दिखता है:
तो बस ये कमांड चलाएं:
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
/var/www/user1
फ़ोल्डर मौजूद गया है या कनेक्शन असफल हो जायेगी।
अभी आप अपने FTP से जुड़ने की कोशिश कर सकते हैं
- संपूर्ण सर्वर तक पहुँचने के लिए एक व्यवस्थापक उपयोगकर्ता बनाएँ
एक व्यवस्थापक उपयोगकर्ता बनाने के लिए हमें एक नया उपयोगकर्ता पंजीकृत करना होगा htpasswd
।
इससे पहले कि हम ऐसा करते हैं, मैं आपको सलाह दूंगा कि आप /etc/ftpusers
कुछ ऐसे उपयोगकर्ताओं को परिभाषित करें, जिन्हें ftp के साथ जुड़ने की अनुमति नहीं है। मुझे लगता है कि यह केवल स्थानीय उपयोगकर्ताओं के लिए है और आभासी उपयोगकर्ताओं के लिए नहीं है, लेकिन केवल इस फ़ाइल में निहित नाम का चयन न करें।
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
अब हमें एक नई लाइन जोड़ने की जरूरत है /etc/vsftpd.conf
chroot_list_enable=YES
इसका अर्थ है कि आपके उपयोगकर्ता को उनके फ़ोल्डर में रखा जाएगा (जेल के रूप में) उपयोगकर्ताओं को / etc / में
vsftpd.chroot_list
चलिए इस फाइल को बनाते हैं और हमारे उपयोगकर्ता को जोड़ते हैं, फाइल एक सरल रेखा है जिसमें "थीडमिन" होता है। प्रति पंक्ति एक उपयोगकर्ता जोड़ें। इसका मतलब है कि आपको /var/www/theadmin
फ़ोल्डर बनाने की आवश्यकता नहीं है , उपयोगकर्ता लॉगिन करेगा और शुरू करेगा /home/vsftpd
।
सर्वर को पुनरारंभ करें और आप कर रहे हैं!