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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章