1. 程式人生 > >Linux 下vsftpd配置虛擬使用者併為其劃分工作根目錄

Linux 下vsftpd配置虛擬使用者併為其劃分工作根目錄

  1. 下載vsftpd
    apt-get install vsftpd

  2. 配置vsftpd,在配置之前最後先備份一下vsftpd.conf

vi /etc/vsftpd/vsftpd.conf
所有配置資訊如下:(讀者可以直接copy,然後覆蓋自己的vsftpd.conf內容)
# allow anonmy user login
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO
anon_other_write_enable=YES

# local user setting
local_enable=YES local_root=/home/ftp/public local_umask=022 write_enable=YES # allow ip to or not to connect this ftp(depends on the /etc/hosts.allow and /etc/hosts.deny) tcp_wrappers=YES chroot_local_user=YES anon_root=/home/ftp/public dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file
=/var/log/vsftpd.log xferlog_std_format=YES ftpd_banner=/tmp/banner listen=YES pam_service_name=vsftpd max_clients=5000 max_per_ip=5000 # set virtual users guest_enable=YES guest_username=virtual user_config_dir=/etc/vsftpd/user_conf #other settings reverse_lookup_enable=NO ascii_upload_enable=YES ascii_download_enable
=YES chroot_list_enable=YES chroot_local_user=YES

3 . 劃分vsftp工作目錄

/home/ftp

4 . 建立虛擬使用者使用者名稱和密碼檔案

vi /etc/vsftpd/login.txt
username #奇數行是使用者名稱
pwd #偶數行是密碼

5 . 生成PAM認證的db檔案

db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login

6 . 修改許可權
chmod 600 /etc/vsftpd/vsftpd_login.db

7 . 修改PAM檔案
vi /etc/pam.d/vsftpd
//註釋掉所有配置資訊,然後新增以下兩行配置資訊
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
//注意,網上有些配置在pam_userdb.so前面加上了/lib..的路徑,本人開始也是這樣做始終都登入不上,原因是各個機器路徑也許不一樣,讀者需要看該檔案之前的以pam開始的.so檔案是否帶路徑(即已經被我們註釋了的部分),如果那部分.so都帶路徑了則pam_userdb.so前面也要帶相同的路徑,否則不需要帶路徑

8 . 建立一個本地使用者,虛擬使用者通過對映到這個本地使用者才能訪問ftp檔案伺服器
useradd -d /home/ftp -s /sbin/nologin virtual
-d 指定ftp工作目錄 -s指定該使用者不能登入本機shell

9 . 修改ftp工作目錄許可權
chown virtual /home/ftp

10 . 修改vsftpd配置資訊
新增一下資訊:
local_enable=YES #由於虛擬使用者是通過對映到本地使用者virtual才能訪問ftp伺服器的,這個值必須為YES才能使得虛擬使用者能夠訪問
pam_service_name=vsftpd
guest_enable=YES
guest_username=virtual #虛擬使用者對映的本地使用者
user_config_dir=/etc/vsftpd/user_conf #指定虛擬使用者的配置資料夾

11 . 建立虛擬使用者的配置檔案

cd /etc/vsftpd/user_conf  #進入user_conf資料夾內
vi username 
#各種許可權的配置大家看英文名應該都能懂什麼意思,想給使用者配什麼許可權就讓該許可權YES即可,下面給出的配置是給虛擬使用者賦全部許可權
local_root=/home/ftp/username
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES

12 . 重啟vsftpd
service vsftpd restart