FTP配置虚拟用户

  1. 建立vsftpd服务的宿主用户(root)
# useradd vir -s /sbin/nologin [-d /ftp/dir]
  1. 创建日志文件(root)
# touch /var/log/vsftpd.log
# chown vir:vir /var/log/vsftpd.log
  1. 修改vsftpd配置文件(root)
# vi /etc/vsftpd/vsftpd.conf

	anonymous_enable=NO  #不允许匿名访问
	local_enable=YES  #本地用户可以访问
	chroot_list_enable=YES  #使用户不能离开主目录
	ascii_upload_enable=YES  #允许上传
	ascii_download_enable=YES  #支持ASCII模式的下载功能
	pam_service_name=vsftpd  #千万别忘记添加

	#手工输入以下参数和值
	guest_enable=YES  #开启虚拟用户的功能
	guest_username=vir  #指定虚拟用户的宿主用户
	user_config_dir=/etc/vsftpd/vuser_conf  #指定虚拟用户权限配置文件目录
	xferlog_file=/var/log/vsftpd.log  #vsftpd的服务日志保存路径,默认不存在
  1. 建立虚拟用户名单(root)
# vi /etc/vsftpd/vsftp_users.conf  //输入奇数行为账号,偶数行为密码

	yb1 #账号
	abcd1234 #密码
	yb2
	abcd1234
  1. 生成认证文件,若db_load命令找不到,需要安装db4_utils(yum install db4 db4_utils)(root)
# db_load -T -t hash -f /etc/vsftpd/vsftp_users.conf /etc/vsftpd/vsftp_users.db
# chmod 600 /etc/vsftpd/vsftp_users.db
  1. 编辑认证文件,注释文中全部内容(第一行需要保留),插入以下内容(root)
# vi /etc/pam.d/vsftpd

	auth	required	pam_userdb.so	db=/etc/vsftpd/vsftp_users
	account	required	pam_userdb.so	db=/etc/vsftpd/vsftp_users
完整路径/usr/lib64/security/pam_userdb.so
  1. 创建虚拟用户权限配置文件存放位置(root)
# mkdir /etc/vsftpd/vuser_conf
  1. 自定义用户权限配置文件(root)
# vi /etc/vsftpd/vuser_conf/yb1

	local_root=/data01/yb1 #该目录所属主所属主应为vir
	anon_world_readable_only=NO
	anon_upload_enable=YES
	anon_mkdir_write_enable=YES
	anon_other_write_enable=YES
  1. 重启vsftp(root)
# systemctl restart vsftpd.service

其他问题

  • 连接 FTP 时若提示错误:
    vsftpd 530 login incorrect
    原因:/etc/vsftpd.conf参数配置里面有空格
    解决方法:去掉空格
  • 连接 FTP 时若提示错误:
    500 OOPS: vsftpd: refusing to run with writable root inside chroot()
    原因:vsftpd的安全规则是不允许ftp用户对ftp根目录有可写权限,因此那个ftp用户就被服务器拒绝了
    解决方法:
    chmod a-w /data01/yb1
    chmod a-w /data01/yb2
  • 若可以查看文件但无法上传下载,可尝试在 /etc/vsftpd/vsftpd.conf 添加以下选项:
    allow_writeable_chroot=YES

  • 一个可用的 vsftpd.conf 配置文件
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    ascii_upload_enable=YES
    ascii_download_enable=YES
    ftpd_banner=Authorized users only. All activity may be monitored and reported.
    chroot_local_user=YES
    listen=YES
    allow_writeable_chroot=YES #若可以查看文件但无法上传下载,可尝试添加该选项
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    guest_enable=YES
    guest_username=vir
    user_config_dir=/etc/vsftpd/vuser_conf
    xferlog_file=/var/log/vsftpd.log

  • 另一个可用的vsftpd.conf配置文件
    anonymous_enable=NO
    #local_enable=YES
    write_enable=YES
    anon_umask=066
    dirmessage_enable=YES
    connect_from_port_20=YES
    listen=NO
    listen_ipv6=YES
    pam_service_name=vsftpd.vu
    userlist_enable=YES
    userlist_file=/etc/vsftpd/user_list
    userlist_deny=YES
    tcp_wrappers=YES
    guest_enable=YES
    guest_username=vftpuser
    user_config_dir=/etc/vsftpd_user_conf
    allow_writeable_chroot=YES
    dual_log_enable=YES
    vsftpd_log_file=/var/log/vsftpd.log
    xferlog_enable=YES
    xferlog_file=/var/log/xferlog
    xferlog_std_format=YES

  • 一个示例虚拟用户权限配置文件
    local_root=/data01/yb1 #虚拟用户yb1根目录
    write_enable=YES
    anon_umask=022
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值