安装vsftpd
ubuntu下
sudo apt install vsftp
准备ftp专用用户
添加ftp用户,-d参数指定用户根目录,-s指定sh,nologin表示禁止该用户登录shell,MyFtp为用户名
useradd -d /home/ftp -s /sbin/nologin MyFtp
修改用户密码
sudo passwd MyFtp
vsftpd基本配置
打开vsftpd.conf,该文件可能在/etc/vsftpd.conf,可能在/etc/vsftpd/vsftpd.conf
sudo vim /etc/vsftpd.conf
视情况可以打开或者关闭匿名登录,私人用的话建议关闭
anonymous_enable=NO
local_enable=YES
最后
service vsftpd reload
打完收工
tips:
如果发现创建的用户登录出现530错误
查看vsftpd.conf是否有pam_service_name参数,此参数用于启用pam验证,将后面的字段改一个名字即可
更加安全的选择
vsftpd默认是将所有用户限制在自己的主目录内的,但是由于用户都对自己的主目录有写权限,故而有些情况下仍然可以用cd ..
命令外切,更加安全的做法是:(之所以说有些情况是,在有两个服务器上即使是有写权限的主目录,只要设置了chroot_local_usr就无法成功外切)
以MyFtp用户为例,该用户的主目录为/home/ftp,那么我们在其下创建MyFtp目录,将其所有者变更为MyFtp用户,并且去掉MyFtp目录所有者的写权限。然后我们要做的就是将/home/ftp/MyFtp目录设备vsftpd的默认目录,这样MyFtp用户登录的时候,就不会切换到/home/ftp,而是切换到/home/ftp/MyFtp
要做的就是在vsftpd.conf中增加如下行:
local_root=/home/ftp/MyFtp