见上文服务器系统关于ftp的介绍
【银河麒麟V10】【服务器】ftp使用介绍及常见场景搭建
二、常见场景搭建(以下场景搭建以银河麒麟V10 0710 桌面系统为例)
1、匿名开放模式,匿名登录,拥有全部权限#sudo -i //桌面提权
# apt install vsftpd -y //安装vsftpd
# cp -avx /etc/vsftpd.conf vsftpd.conf.bak //修改前先备份配置文件
# vim /etc/vsftpd.conf //配置
listen=YESlisten_ipv6=NOanonymous_enable=YESlocal_enable=YESanon_root=/opt/ftp #定义匿名用户根目录local_enable=YESwrite_enable=YESlocal_umask=022anon_umask=022anon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESanon_world_readable_only=YESconnect_from_port_20=YESno_anon_password=YESchroot_local_user=YESallow_writeable_chroot=YES
# mkdir -p /opt/ftp/pub //创建匿名用户根目录
# chmod 777 /srv/ftp/pub //注意,此时不能直接赋予写权限给anon_root定义的根目录,如果是根目录设置为777(即拥有写权限),登录会报”500 OOPS: vsftpd: refusing to run with writable root inside chroot()“的错误,是因为从vsftpd2.3.5版本之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。所以这里再创建一个pub目录,将pub目录赋予写权限, 实现匿名用户的创建和上传文件等写操作
# systemctl restart vsftpd
2、本地用户模式,需要用户名密码才能登录,拒绝匿名登录# sudo -i //桌面提权
# mkdir -p /opt/ftp/lisi/pub //创建名为lisi的ftp用户根目录
# useradd lisi -s /sbin/nologin -d /opt/ftp/lisi //为系统安全考虑,对创建的ftp用户lisi设置为nologin,即不允许使用lisi用户直接登录操作系统,然后-d参数是更改lisi用户的家目录为指定ftp根目录
# vim /etc/pam.d/vsftpd //需要注释掉PAM模块对vsftp登录的过度验证(最后一行),否则lisi用户为nologin状态下将无法登录ftp
# passwd lisi //设置密码
# vim /etc/vsftpd.conf
listen=YESlisten_ipv6=NOanonymous_enable=NO #禁止匿名用户访问local_enable=YESchroot_local_user=YESlocal_root=/opt/ftp/lisilocal_enable=YESwrite_enable=YESlocal_umask=022connect_from_port_20=YESallow_writeable_chroot=YES
# chmod 777 /opt/ftp/lisi/pub
# systemctl restart vsftpd
【注】:如果客户端使用windows的filezilla的时候访问中文文件夹报错,可以设置编码格式为UTF8,操作方式如下:
用FileZilla给自己的FTP传文件的时候,总是提示“Failed to convert command to 8 bit charset”错误,这是FileZilla无法正确判断字符集编码造成的,解决办法如下:
1、打开FileZilla的“站点管理器”-“字符集”页面
2、选择“使用自定义的字符集”
3、编码内容填写你自己FTP服务器的字符集即可,也可强制使用UTF8格式