vsftp 是一款使用方便,且安全的ftp服务器端的软件。可以使用系统用户登陆,也可以使用虚拟用户登陆,进行登陆。 如果使用系统用户登陆的时候,默认情况,该用户可以登陆到系统中。意思是,可以登陆ftp服务器,也可以登陆到系统的。这样有时候是不安全的,因为登陆系统,就可以看到很多文件。
创建一个系统账号,仅仅让该账号登陆ftp
第一: 在文件 /etc/bash 中添加 /bin/false
cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash /bin/false
第二: 指定用户(zhangsan)使用 /bin/false
usermod -s /bin/false zhangsan
经过两步设置后就可以让用户仅仅只能是用 ftp服务器,并禁止用登陆系统。
备注
/bin/false 和 /sbin/nologin是有所不同的。共同的部分是,用户都无法登陆系统。方式可能不同。centos7环境下试了 /bin/fase登陆的时候无提示,直接退出。 之前配置ftp的时候,只用使用 /sbin/nologin ,似乎就可以实现想要的效果,现在则需要用 /bin/false 来解决。
可能的原因
如果之前确实可以用 /sbin/nologin 实现,系统用户仅仅可以登陆ftp, 那我现在环境不行,说明这个和系统设置和vsftp的配置有关系。