此文档适用于银河麒麟v4.0.2、银河麒麟v10桌面版系统配置ftp服务,包含匿名用户模式、系统用户模式及虚拟用户模式。

一、安装ftp服务

  1. apt-get -y install vsftpd

  2. 装完ftp服务可以看到默认在srv下面建立一个ftp文件夹

 二、配置文件

vsftpd装完以后,配置文件基本都在/etc目录下面。

  1. /etc/vsftpd.conf 为vsftpd 的配置文件,/etc/pam.d/vsftpd 是vsftpd 使用PAM 模块时的相关配置文件,主要用来作为身份认证之用,还有一些用户身份的抵挡功能。
  2. /etc/ftpusers 也是PAM 模块(/etc/pam.d/vsftpd) 指定哪些用户无法登入的配置文件,把拒绝登录ftp的用户写入这个文件,一行一个用户。
  3. /srv/ftp 是vsftpd 的预设匿名者登入的根目录。其实就是ftp 这个用户的家目录。

三、配置匿名用户登录ftp

     1. cp  /etc/vsftpd.conf  /etc/vsftpd.conf.bak

在设置配置文件之前,建议保留一份原配置文件的备份。每次修改完配置文件后,需要重启vsftpd服务才能生效。

     2.  vim  /etc/vsftpd.conf,匿名用户登录具体配置如下

anonymous_enable=YES                开启匿名用户登录

no_anon_password=YES                匿名用户不检查口令

write_enable=YES                           全局写权限

注:匿名用户默认登入的根目录是以ftp 这个用户的家目录为主,可以通过查看/etc/passwd 中ftp 那一行查看当前系统ftp 用户的家目录是/srv/ftp,匿名用户登录时,使用的是ftp这个用户的权限,是被chroot到/srv/ftp目录中了

     3. 在匿名用户登录目录下创建上传下载目录,使用win文件管理器进行匿名用户的测试登录。

mkdir  /srv/ftp/downloads

mkdir  /srv/ftp/uploads

chown  ftp:ftp  /srv/ftp/uploads  (修改uploads目录权限,匿名用户可以上传到该目录下。)

    4. systemctl  restart  vsftpd  重启服务验证(所有功能都可):

四、配置系统本地用户登录ftp 

  1. vim  /etc/vsftpd.conf 系统本地用户登录ftp修改配置文件如下:

utf8_filesystem=YES            vsftpd使用utf8文件系统(防止乱码)

userlist_enable=YES    开启用户访问列表

userlist_deny=NO               只有列表文件里的用户可以访问ftp    

userlist_file=/etc/allow_user  用户访问白名单

local_root=/home/kylin         ftp用户访问根目录

write_enable=YES               全局写权限配置

local_enable=YES               开启本地用户登录

   local_root:设置本地用户登录ftp根目录的参数,缺省值为登录用户的家目录,自定义设置时候注意登录用户对自定义目录的操作权限。

注:/etc/ftpusers是限制本地用户访问的黑名单(root用户默认禁止登录ftp)

  • 2. 编辑白名单文件,设置允许访问ftp的系统用户

  • 3. 使用kylin用户登录ftp测试(所有功能都可)

四、 配置虚拟用户登录ftp

  1. 先在系统中创建一个实体用户,虚拟用户依赖实体用户。

useradd  -m  -s   /sbin/nologin   ftpuser

chmod   755   /home/ftpuser

     2. 用户相关配置结束后,开始设置虚拟用户与密码文件vusers.list。

mkdir  /etc/vsftpd

vim  /etc/vsftpd/vusers.list

     3. 要使用db_load 进行加密。而db_load 需要db-util 这个软件。

apt-get  -y  install   db-util

db-util 安装完毕后,现在开始使用db_load 对loginx.txt 进行加密

db_load -T -t hash -f /etc/vsftpd/vusers.list  /etc/vsftpd/vusers.db

chmod  600  /etc/vsftpd/vusers.db   提高虚拟用户账号文件的安全性

     4. Pam验证

vim   etc/pam.d/vsftpd.vu

     5. 修改vsftpd配置,添加虚拟用户支持

local_enable=YES

write_enable=YES

local_root=/home/ftpuser

anon_umask=022

allow_writeable_chroot=YES

pam_service_name=/etc/pam.d/vsftpd.vu

guest_enable=YES

guest_username=ftpuser

user_config_dir=/etc/vsftpd/vusers_dir   虚拟用户配置文件目录

utf8_filesystem=YES

    6. 为不同的虚拟用户建立独立的配置文件

mkdir  /etc/vsftpd/vusers_dir

vim vuser1               vuser2同理

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_root=/home/ftpuser/vuser1

          mkdir  /home/ftpuser/vuser1  

          mkdir  /home/ftpuser/vuser2   为每个虚拟用户创建家目录,隔离

      7. 测试验证(上传、下载、创建、重命名都可)

 

六、 常见问题解决

问题描述:在麒麟V4、V10(桌面),使用文件管理器使用系统用户登录FTP时候,出现无法显示目录文件问题。

解决方法:在ftp启动脚本(/lib/systemd/system/vsftpd.service)加入设置环境变量设置:LC_TIME为英文时区。

修改完配置文件后,systemctl  daemon-reload  systemctl resatart vsftpd 测试:

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐