前言:之前在FTP配置的账号,无法将用户限制在主目录中,查阅vsftpd.conf的配置参数,发现网上很多言论相悖,于是总结一下常用参数,以备不时之需,方便查找
userlist_enable=YES(允许某些用户登入的项目 存在user_list文件中的用户不允许登入)
userlist_deny=YES (如果这里改为NO,反过来只能存在:文件中的用户允许登入)
userlist_file=/etc/vsftpd/user_list
anonymous_enable=NO(禁止匿名登入)
如果设置chroot_local_user参数为YES
chroot_local_user=YES(对用户访问只限制在主目录,不能访问其他目录)
chroot_list_enable=YES(表示要启用chroot_list_file)
chroot_list_file=/etc/vsftpd/chroot_list(chroot_list_file列出的是那些“不会被限制在主目录下”的用户)
如果设置chroot_local_user参数为NO
chroot_local_user=NO(对用户访问只限制在主目录,不能访问其他目录)
chroot_list_enable=YES(表示要启用chroot_list_file)
chroot_list_file=/etc/vsftpd/chroot_list(chroot_list_file列出的是那些"会被限制在主目录"的用户)
xferlog_enable=YES (记录FTP上传日志)
xferlog_std_format=YES(默认为NO,如果启用该选项,传输日志文件将以标准 xferlog 的格式书写)
xferlog_file=/var/log/xferlog(指定记录日志的文件)
dual_log_enable=YES(如果启用该选项,将生成两个相似的日志文件,默认在 /var/log/xferlog 和 /var/log/vsftpd.log 目录下。前者是 wu-ftpd (WashingtonUniversity FTP,它是一个著名的FTP服务器软件,一般简称为wu-ftp)类型的传输日志,可以利用标准日志工具对其进行分析;后者是Vsftpd类型的日志)
syslog_enable=YES(如果启用该选项,则原本应该输出到/var/log/vsftpd.log中的日志,将输出到系统日志中)
常见的日志解决方案:
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog(wu-ftpd 类型的传输日志,可以利用标准日志工具对其进行分析)
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log(Vsftpd类型的日志)
linux添加新FTP用户
创建用户名
useradd -d /home/admin(可见主目录) admin
设置密码
passwd admin
更改用户相应的权限设置,限定用户admin不能telnet,只能ftp
usermod -s sbin/nologin admin
恢复登录权限
usermod -s /bin/bash admin
这里我以为设置此权限后,用户按照参数所说只能使用ftp登录,但是没有,ftp登录用户只能看到自己主目录,但使用sftp登录还是可以看到所有目录
解决方法:
修改/etc/shells,在shell文件最后添加一行/usr/sbin/nologin
把ftp用户的shell改为/usr/sbin/nologin执行:usermod -s /usr/sbin/nologin admin
客户端重新连接,用户无法使用SFTP方式登录,只能使用FTP
更改用户admin的主目录为/admin
usermod -d /admin admin
如果需要允许用户修改密码,但没有telnet登录系统的权限
用户telnet后将直接进入改密界面
usermod -s /usr/bin/passwd admin
查看用户
cat /etc/passwd
查看组
cat /etc/group
重启vsftpd服务器
systemctl restart vsftpd