vsftpd是一个linux的ftp服务器,启动这个服务后,默认开启了匿名用户登陆,可以按照以下方式禁用匿名用户并设置登陆用户。
vsftpd禁用匿名用户
修改vasftpd服务的配置文件/etc/vsftpd.conf(或/etc/vsftpd/vsftpd.conf)
anonymous_enable=NO
重启vsftpd服务即可生效:
service vsftpd rstart
vsftpd设置登陆用户
设置系统登陆用户可分为以下几步:
添加系统用户
useradd -s /sbin/nologin ftpadmin
添加系统用户ftpadmin,-s /sbin/nologin
表示此用户不允许系统登陆,只能用作类似于vsftpd的服务登陆。
设置用户密码
passwd ftpadmin
输入以上命令后回车,就会提示修改此用户的密码,输入两次密码即可。期间会提示密码太简单不安全等,忽略就行了。最终后出现密码成功更新。
ftp访问
可以在windows文件系统或者浏览器访问 ftp://192.168.xx.xx,验证时否可以登陆。如果关闭了匿名用户登陆功能,访问时就会弹出用户名和密码的输入框,输入后就可以访问了。
但是,此时访问的是此系统用户的主目录,即 /home/ftpadmin 目录,由于之前项目的ftp文件夹并不在这里,所以可使用以下方法设置访问。
设置ftp用户的访问目录
原项目名称为cba,其ftp文件夹为 /var/ftp/cba,现在需要让 ftpadmin 用户也能访问这个目录。
可以在 /home/ftpadmin 下新建一个文件夹 cba,将 /var/ftp/cba 挂载到这个 cba文件夹就可以访问了。
mkdir cba
mount --bind /var/ftp/cba cba
之前我也尝试过使用软链接的方式,但是ftp访问到的只是一个类似快捷方式图标的文件,并不能跳转到目标。
另外看过一些技术文章介绍的 ,大都是配置 local_root ,但是我这里,对于系统用户,配置 local_root=/var/ftp后,并不会生效,还不知道是什么原因,所以目前就先使用mount挂载的方式。