जवाबों:
सुनिश्चित करें कि निम्न पंक्ति मौजूद है
chroot_local_user=YES
उपयोगकर्ता होम निर्देशिका को सेट करें /var/www/
, यदि आप मौजूदा उपयोगकर्ता के लिए बदलना चाहते हैं तो आप उपयोग कर सकते हैं:
usermod --home /var/www/ username
फिर आवश्यक अनुमति सेट करें /var/www/
user_sub_token
यदि आप उपयोगकर्ता की होम निर्देशिका नहीं बदलना चाहते हैं तो आप इसका उपयोग कर सकते हैं:
chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER
user_sub_token
:टेम्पलेट के आधार पर प्रत्येक वर्चुअल उपयोगकर्ता के लिए स्वचालित रूप से एक होम डायरेक्टरी जनरेट करें। उदाहरण के लिए, यदि guest_username के माध्यम से निर्दिष्ट वास्तविक उपयोगकर्ता की होम निर्देशिका / ftphome / $ USER है, और user_sub_token को USER पर सेट किया गया है, तो जब वर्चुअल उपयोगकर्ता परीक्षण लॉग इन करेगा, तो वह समाप्त हो जाएगा (आमतौर पर chroot () 'ed) निर्देशिका / फ़िफ़ोम / परीक्षण। यह विकल्प भी प्रभावित होता है अगर local_root में user_sub_token हो।
निर्देशिका बनाएं और अनुमतियाँ सेट करें:
mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test
एक बार पुनरारंभ करें vsftpd
और अपने सेटअप का परीक्षण करें।
नमूना सफलता आउटपुट:
[root@mail tmp]# ftp localhost
Connected to mail.linuxian.local.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mput vhosts
mput vhosts?
227 Entering Passive Mode (127,0,0,1,146,41)
150 Ok to send data.
226 File receive OK.
24 bytes sent in 3.3e-05 seconds (7.1e+02 Kbytes/s)
ftp> ls -rlt
227 Entering Passive Mode (127,0,0,1,97,90)
150 Here comes the directory listing.
-rw-r--r-- 1 787 787 24 Oct 11 19:57 vhosts
226 Directory send OK.
ftp> 221 Goodbye.
$USER
है local_root
, जैसे कि /home/$USER/ftp
(जो कि उपयोगकर्ताओं को ftp
उनके होम डायर की उपनिर्देशिका में बदल देगा)।
local_root
उपयोगकर्ता के वास्तविक होम डायरेक्टरी में डालने के मामले में अत्यधिक संभावित है ।
तुम यह केर सकते हो:
usermod --home /var/www/ username
मैंने ऊपर राहुल पाटिल के सुझाव का उपयोग किया:
chroot_local_user=YES
local_root=/home/$USER/www-data
user_sub_token=$USER
लेकिन मुझे समझ में नहीं आ रहा था कि मैं केवल एक उपयोगकर्ता के साथ लॉग इन करने में सक्षम क्यों था। तब मैंने पाया कि हम एक रूट डायरेक्टरी (इस मामले के लिए /home/$USER/www-data
) को चाउरॉट नहीं कर सकते, जिसकी राइट एक्सेस है। इसलिए मैं इसके साथ लिखने की पहुंच हटा देता हूं:
# chmod a-w /home/$USER/www-data
नोट:$USER
अपने उपयोगकर्ता के साथ बदलें ।
चेक chroot
में विकल्प vsftpd.conf
और यह जिसका homedir के लिए निर्धारित है के लिए एक अलग उपयोगकर्ता बनाने के /var/www
।
chroot
में विकल्पvsftpd.conf
और यह जिसका homedir के लिए निर्धारित है के लिए एक अलग उपयोगकर्ता बनाने के/var/www
।