centOS7 安装vsftp服务器
程序员文章站
2022-08-28 17:48:30
一.目的:有许多时候我们需要从自己机器上,上传文件到Linux服务器上,想要上传文件就必须要通过FTP 协议(File Transfer Protocol(文件传输协议))。所以要在服务器上配置FTP功能。 二.步骤: 查看服务器是否安装vsftp: rpm -p -vsftpd。 如果安装则会显示 ......
一.目的:有许多时候我们需要从自己机器上,上传文件到linux服务器上,想要上传文件就必须要通过ftp 协议(file transfer protocol(文件传输协议))。所以要在服务器上配置ftp功能。
二.步骤:
- 查看服务器是否安装vsftp: rpm -p -vsftpd。 如果安装则会显示vsftpd版本,没有安装就会提示未安装软件包。
- 安装vsftp命令(需要有root权限):yum install -y vsftpd。
- 安装成功之后,检查vsftp状态(是否激活active):systemctl status vsftpd.service。
此时,你已经成功安装好了vsftp服务器。但是,最关键的不是安装,而是如何配置服务器,也是难点。
三.配置:
声明:以下所有文件路径皆以 “全路径” 演示。
- 创建vsftp的用户数据
- 创建二进制文件(此文件是作为生成用户数据的一个临时数据文件,包含用户名、密码):
- touch '/etc/vsftpd/用户名'。用户名 自己随便取,我命名为“vsftpuser.txt”,即 touch '/etc/vsftpd/vsftpuser.txt'。
- 向二进制文件中添加内容:
- vim '/etc/vsftpd/vsftpuser.txt'。进入如下页面:
1为用户名,2为密码。
ps:一条信息需要占据一行,用户名、密码不可以写在一行。不能使用root做用户名,因为系统需要,所以你不能用,嘻嘻。
- 使用 :wq 退出vim编辑页面,保存文件。
- vim '/etc/vsftpd/vsftpuser.txt'。进入如下页面:
1为用户名,2为密码。
- 使用db4命令使vsftpuser.txt文本文件生成vsftpuser.db(名字自己定义也可以)数据文件
- 检查是否安装db4 :rpm –q db。
- 在网络搜索匹配你自己系统的安装包:yum search db4。如下图所示:
- 安装db4: yum install -y compat-db47.x86_64。
- 生成vsftpuser.db数据文件: db_load -t -t hash -f '/etc/vsftpd/vsftpuser.txt' '/etc/vsftpd/vsftpuser.db'。
- 查看vsftpuser.db数据文件,如下图就对啦:
- 设置ftp 的guest账户
- 创造ftp文件存储目录:mkdir -p '/ftp/private'
- 将此目录设置成ftp文件传输目录:useradd -d '/ftp/private' -s /sbin/nologin '/etc/vsftpd/vsftpuser'
- 编辑vsftpd的pam认证文件
- 备份/etc/pam.d/vsftpd文件,然后进入打开/etc/pam.d/vsftpd:vi /etc/pam.d/vsftpd。
- 将auth及account的所有配置行行均在注释掉。
- 在文件最上面两行添加如下内容:
-
auth required pam_userdb.so db=/etc/vsftpd/vsftpuser
-
account required pam_userdb.sodb=/etc/vsftpd/vsftpuser
-
- 配置vsftpd.conf
- 打开/etc/vsftpd/vsftpd.conf文件
- # anonymous_enable=yes 改为 anonymous_enable=no
- 在文件里面添加如下内容:
- virtual_use_local_privs=yes
- guest_enable=yes
- guest_username=vsftpd
- chroot_local_user=yes
- allow_writeable_chroot=yes
- 保存
- 将ftp设置成开机自启:systemctl enable vsftpd
四、防火墙设置
- 添加防火墙设置:firewall-cmd --permanent --zone=public --add-service=ftp
- 重新加载防火墙:firewall-cmd --reload
五、启动ftp
- 查看ftp状态:systemctl status ftpd
- 启动ftp:systemctl start ftpd