安装vsftp服务

使用命令安装vsftp,在这一步中,若出现安装失败的问题,重新配置一下系统的镜像源,可参考我的 debain系统更新软件源 的这篇博客。

sudo apt-get install vsftpd

在vsftpd安装完毕之后,使用一下命令启动vsftpd服务

# 重启vsftp服务
sudo /etc/init.d/vsftpd restart  
# 或者
sudo systemctl start vsftpd

# 将ftp服务设置成为开机自启动        
sudo systemctl enable vsftpd

查看vsftpd的运行状态

sudo systemctl status vsftpd

这个Active后面是绿色的active(running),说明ftp服务运行正常。

配置vsftpd

vsftpd 的主要配置文件位于/etc/vsftpd.conf,先对该文件做个备份。以下是本机上的配置,使用的时候,将其中的注释去掉。

listen=YES			#监听IPv4 sockets
listen_address=192.168.0.102	#设置为本机的ip,不确定该设置是否有用
listen_ipv6=NO		#关闭监听IPv6 sockets
anonymous_enable=NO	#禁止匿名用户登录,增强安全性
local_enable=YES	#允许本地用户登录
write_enable=YES	#允许用户写入
local_umask=022		#组内用户,和其他用户不可写,只能读

anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO

chroot_local_user=YES	#全部用户被限制在主目录
chroot_list_enable=NO	#启用例外用户名单
chroot_list_file=/etc/vsftpd.chroot_list	#指定例外用户列表文件,列表中用户不被锁定在主目录
allow_writeable_chroot=YES

local_root=/fl-share/ftp	#本地用户登录后所在的目录,若没有设置此项,则本地用户在登录后会在他的home目录下
anon_root=/fl-share/ftp		#匿名用户登录后所在的目录

use_localtime=YES
xferlog_enable=YES

connect_from_port_20=YES

secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES

在编辑完vsftpd.conf的配置文件之后,可使用以下命令对该文件进行检查:

sudo vsftpd /etc/vsftpd.conf

设置登录ftp服务器的用户

在本机中,在/fl-share的目录下,新建了一个ftp的文件夹作为ftp服务器存放文件的根目录。在上述的vsftpd.conf中的配置文件也有设置。

然后,新建一个linux的用户,专门用于登录ftp服务

# 新建一个名为john的用户
useradd -d /home/john -m -s /bin/bash john

# 设置该用户的linux登录密码
passwd john

# 新建一个组,将该用户拉到组里面去
groupadd ftpuser
gpasswd -a john ftpuser

# 查看该组内的成员
members ftpuser



在/etc的目录下,新建vsftpd.user_list的文件,将john加入到其中,在上述的vsftpd.conf的配置文件中,将userlist_enable设置为YES,userlist_deny设置为NO,则vsftpd.user_list中的加入的用户名称,就是允许访问ftp服务器的用户。

在/etc的目录下,新建vsftpd.chroot_list的文件,不需要添加任何用户,如果添加,这个用户可以访问ftp根文件之外的文件。

关于vsftpd.conf中local_umask和chroot_local_user的参数的含义,可查看以下博客的解释:

local_umask和chroot_local_user

在其他的设备中登录该ftp服务器

1.切换到其他的linux客户端,使用ftp的命令登录该ftp服务器

ftp 192.168.0.102

如上图所示,在linux的客户端登录成功,列出了当前ftp服务器根目录下的文件。

2.在windows上使用FileZilla的软件,登录该ftp服务器

在widnows上,安装好FileZilla的软件之后,设置主机ip,和账号,秘密,端口为21,即可成功登录

3.在windows上的资源管理器的地址栏进行登录

在地址栏中,输入 ftp://john@192.168.0.102,然后在弹出的对话框中,输入账号,密码,也可浏览该ftp服务器的内容。

在本机的测试中,登录到该ftp服务器之后,可以浏览上层目录的内容,但是无法修改,尝试过限制ftp用户的浏览范围,但没有成功。

若是想上传文件,需要新建一个文件夹,例如data,然后使用chmod的命令,修改该文件夹的权限为777,即可实现用户自己文件到该服务器。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐