linux中Vsftp虚拟用户配置

作者:简简单单 2015-03-28


1、添加虚拟用户列表

创建一个虚拟用户列表文件,保存需要配置的虚拟帐号,格式为:第一行用户名,第二行密码,依次类推。

# vi /etc/vsftpd/virtual_user_list

ftp_www

123456

ftp_log

123456

2、生成虚拟用户口令认证文件

 

通过db_load命令生成认证文件。查询db_load命令是否已安装,未安装则先安装。

# rpm -qa |grep db4-utils
本地CentOS未安装,直接通过yum安装即可。
# yum -y install db4-utils

将前面添加的virtual_user_list虚拟用户口令文件转换成系统识别的口令认证文件。之后若需要调整该文件,需重新执行db_load动作。

# db_load -T -t hash -f /etc/vsftpd/virtual_user_list /etc/vsftpd/virtual_user_list.db

3、设置虚拟用户所需的PAM配置文件

vsftpd.conf中的pam_service_name参数可指定配置文件。这里修改默认的vsftpd文件。
# vi /etc/pam.d/vsftpd
# 注释掉其他部分
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtual_user_list
account required /lib/security/pam_userdb.so db=/etc/vsftpd/virtual_user_list

4、创建vsftpd宿主帐号

# useradd vsftpd -s /sbin/nologin

5、编辑vsftpd.conf配置文件

 

编辑vsftp配置文件,添加虚拟用户相关配置。

# vi /etc/vsftpd/vsftpd.conf

 

# 设定启用虚拟用户功能。

guest_enable=YES

 

# 指定虚拟用户的宿主用户,前面创建的vsftpd用户。

guest_username=vsftpd

 

# 设定虚拟用户的权限符合他们的宿主用户。

virtual_use_local_privs=YES

 

# 设定虚拟用户个人vsftp的配置文件存放路径。配置文件须与虚拟用户同名

# 如/etc/vsftpd/vconf/ftp_www则可以定义ftp_www的特殊配置。

user_config_dir=/etc/vsftpd/vconf

6、根据虚拟用户设置不同的权限

设定ftp_www只能访问/data/ftp/www,ftp_log只能文芳/data/ftp/log,创建所需的文件和配置信息。

# mkdir -p /data/ftp/{www,log}
# chown -R vsftpd:vsftpd /data/ftp/*
 
# touch /etc/vsftpd/chroot_list
 
# mkdir /etc/vsftpd/vconf
# vi /etc/vsftpd/vconf/ftp_www
local_root=/data/ftp/www
max_clients=1
max_per_ip=1
local_max_rate=10000
 
# vi /etc/vsftpd/vconf/ftp_log
local_root=/data/ftp/log
7、重启服务

# service vsftpd restart
此时整个配置文件如下:

# more vsftpd.conf 
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
#ls_recurse_enable=YES
listen=YES
#listen_ipv6=YES
 
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
 
guest_enable=YES
guest_username=vsftpd
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf

相关文章

精彩推荐