首页 > 服务器 > Ftp服务器 > 正文

ahjesus配置vsftpd虚拟用户在Ubuntu

2019-12-22 20:37:51
字体:
来源:转载
供稿:网友
ahjesus配置vsftpd虚拟用户在Ubuntu

网上搜索了很多资料,过时,不全,货不对版

已下步骤亲测有效,不包含匿名用户登录

1、新建/home/loguser.txt

并填充内容,格式如下

用户名密码用户名密码用户名密码

2、生成db文件用于用户验证

执行db_load -T -t hash -f /home/loguser.txt /etc/vsftpd_login.db

如果没有装db会提示你apt-get install,根据提示的内容输入命令安装后再次执行生成db

3、设置数据库文件的访问权限

chmod 600 /etc/vsftpd_login.db

4、编辑文件/etc/pam.d/vsftpd.vu 将以下内容增加到原文件前面两行:

auth required pam_userdb.so db=/etc/vsftpd_loginaccount required pam_userdb.so db=/etc/vsftpd_login

如果没有vsftpd.vu就新建一个

5、新建一个系统用户vsftpd,用户家目录为/home/vsftpd, 用户登录终端设为/bin/false(即使之不能登录系统)

sudo useradd vsftpd -d /home/vsftpd -s /bin/falsesudo chown vsftpd:vsftpd /home/vsftpd

6、根据需要创建/etc/vsftpd.conf,一般要确保含有以下设置:

listen=NOanonymous_enable=NO dirmessage_enable=YES xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES chroot_local_user=YES guest_enable=YES guest_username=vsftpduser_config_dir=/etc/vsftpd_user_conf pam_service_name=vsftpd.vu local_enable=YES secure_chroot_dir=/var/run/vsftpd

7、新建目录/etc/vsftpd_user_conf

在目录内新建对应你第一步的用户名的文件 比如你有用户dbtest 那你在这个目录内也要建立一个dbtest的文件

8、配置单个用户的权限,确保你的dbtest内是这些内容

write_enable=YESanon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/home/vsftpd/dbtest

注意所有的配置文件内容前后都不能有空格,不然登录的时候会提示出错ahjesus.com

9、新建对应local_root的目录,并赋予777权限

测试上传下载编辑删除

10、挂载虚拟目录

比如我的ftp的默认目录是/srv/ftp,我想把/mnt/LinG/WinSoft文件夹,映射到/srv/ftp目录中,我就如下操作 命令:

#mount --bind [原有的目录] [新目录]

先创建文件夹

sudo mkdir /srv/ftp/WinSoft

执行mount命令

sudo mount --bind /mnt/LinG/WinSoft /srv/ftp/WinSoft最后注意,挂载的虚拟目录也需要777权限

关于500 OOPS: vsftpd: refusing to run with writable root inside chroot()

个人理解是不能在主目录有写入权限

这里可以设置主目录的权限为775

然后设置指定的用户的目录权限为777

可以顺利登陆操作了


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表