Linux 下vsftpd配置虛擬使用者併為其劃分工作根目錄
下載vsftpd
apt-get install vsftpd配置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