Linux配置添加FTP用户

Linux下最常用的FTP软件是vsftpd,使用起来非常简单,功能也很强大,以下记录下最简单的使用配置方法。

服务安装

vsftpd是常用软件,因此一般安装也不用费时费力的去源码安装,直接在仓库中进行安装即可,比如在红帽系的发行版上,直接通过YUM安装,如

yum install vsftpd

系统会自动安装成功。安装完成之后,默认情况下,其配置文件在 /etc/vsfptd 目录下。

服务配置

vsftpd 功能很强大,但是我们并不需要全部了解,我们使用最简单方式配置即可,vsftpd默认也是支持本地系统账号的,但是我们经常给不同的人不同的权限,因此也没有必要去通过系统账号去实现,直接通过虚拟账户实现即可。

首先在配置目录下新建一个登录用户的列表文件,比如 loginuser.txt 里面依次按行输入用户名和密码,比如

user1
user1password
user2
user2password

上面是虚拟用户的账号信息,配置完成之后,运行下面的命令生成数据文件

db_load -T -t hash -f /etc/vsftpd/loginuser.txt /etc/vsftpd/login.db

这样就生产了数据文件 login.db,然后就可以在 vsftpd.conf 的最后配置我们自己的配置,类似

user_config_dir=/etc/vsftpd/vhost
virtual_use_local_privs=NO
pasv_enable=YES
pasv_min_port=35000
pasv_max_port=36000

最后两项是本地的端口范围,根据需要配置,其他的的配置可以根据需要进行删减。

配置完成之后,开始针对每个用户进行权限配置,在 vhost 目录下创建用户名同名的文件,比如拥有所有权限的配置文件 user1 ,内容如下

local_root=/mnt/data/app
anon_umask=077
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

或者配置一个只能浏览和下载,不能上传的账号文件 user2,内容如下

local_root=/mnt/data/app
anon_world_readable_only=NO

注意,local_root 是用户登录后的主目录,创建该目录并赋给 vsftpd 用户

配置完成后,重启服务

systemctl restart vsftpd

服务测试

测试之前,最好确认下防火墙的问题,避免排除配置问题。

测试可以使用本地的命令行,即 ftp 127.0.0.1 输入账号密码,更多操作输入? 获得。

当然也可以通过GUI工具进行测试,比如 XFTP 等等。

FTP默认端口是21,而且文件传输需要单独的数据通道端口,一般防火墙可自动识别

最近的文章

使用VS开发Linux程序

VisualStudio的新版本已经开始支持远程编译调试Linux了,我安装了VS2017,尝试在Windows上写了一个Linux服务程序,非常方便。 基本原理能支持Linux开发的也只是在最新的版本中才行,好像应该是2015起。当然在安装VS的时候必须勾选跨平台下的Linux,没有安装的打开安装 …

技术 继续阅读
更早的文章

BAT脚本自动获取管理员权限等功能

偶尔可能会用到Windows下批处理脚本,虽然对BAT脚本使用的少,但是确实很有用,在此记录下一些常用的功能实现代码,长期更新。 自动获取管理员权限在Windows上很多操作需要管理员权限,比如创建服务等。但是在批处理在需要管理器权限的时候,一般要求操作人员切换到管理器 CMD 或 PS 下,进行执 …

技术 继续阅读