Linux安装与配置FTP服务
1、FTP安装与配置
1.1、FTP安装
一般使用yum直接在线安装
# 在线安装FTP yum install -y vsftpd
安装完成后查看ftp状态
# 查看ftp状态 systemctl status vsftpd.service # 启动ftp状态 重启:restart,停止:stop,开机自启:enable,关闭开机自启:disable systemctl start vsftpd.service
1.2、FTP配置
配置文件路径:/etc/vsftpd/vsftpd.conf
# 编辑vsftpd.conf vim /etc/vsftpd/vsftpd.conf # 显示行号 :set nu # 修改配置12行,不允许匿名访问,默认YES允许 anonymous_enable=NO #修改配置83、84行 允许ascii文件上传下载 ascii_upload_enable=YES ascii_download_enable=YES # 修改配置87行 ftpd_banner=Welcome to blah FTP service. #修改配置101,102,104行 将用户限制在为其配置的主目录 chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list #添加下列内容到vsftpd.conf末尾 use_localtime=YES # 监听端口 listen_port=21 idle_session_timeout=300 # 允许写 allow_writeable_chroot=YES data_connection_timeout=1 virtual_use_local_privs=YES pasv_min_port=40000 pasv_max_port=40010 accept_timeout=5 connect_timeout=1 # ftp默认使用GMT时间与系统时间相差8小时 use_localtime=YES # Esc :wq保存
2、FTP账号、组、目录配置
# 新建一个ftpuser组 groupadd ftpuser # 新建一个ftpuser账号,并且该账号不需要登录服务器,设定家目录在 /home/ftpuser,-d '用户主目录' useradd -g ftpuser -M -d /home/ftpuser -s /sbin/nologin ftpuser # 设置用户 ftpuser 的密码 passwd ftpuser # 把 /home/ftpuser 的所有权给ftpuser chown -R ftpuser:ftpuser /home/ftpuser # 在home目录下先创建文件夹,作为后续ftp账号的默认目录 mkdir -p /home/ftpuser # 设置目录权限为755 chmod 755 -R /home/ftpuser
注意:此时创建完账号并赋予主目录且修改密码之后,可以先尝试使用ftp登录连接,看是否可登录,可以的话,后续操作可忽略。
2.1、FTP登录用、密码设置
# 进入/etc/vsftpd/目录 cd /etc/vsftpd/ # 创建用户密码信息文件 vim vuser_passwd #编辑如下内容,创建ftp账户信息 ftpuser 123456 # Esc :wq保存退出 # 生成ftp用户数据文件 db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db # 将该目录的权限改成600 chmod 600 /etc/vsftpd/vuser_passwd.db
2.2、编辑pam认证文件
# 查看系统位数 getconf LONG_BIT # 备份pam认证文件 mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak # 新建pam认证文件 vim /etc/pam.d/vsftpd # 根据自己的操作系统选2行,不要全部都填写哟 # 注:db=/etc/vsftpd/vuser_passwd 中的vuser_passwd 是你生成的虚拟用户的db文件,这里不要加扩展名。 # 系统为32位: auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd # 系统为64位: auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd # Esc :wq 保存内容
2.3、创建chroot_list文件
# 进入目录/etc/vsftpd cd /etc/vsftpd #创建使当前配置的虚拟用户允许访问的文件列表 vim chroot_list #写入FTP用户名 ftpuser # Esc :wq 保存退出
2.4、防火墙、SELinux等配置
# SELINUX不对vsftp不做任何限制 setsebool -P ftpd_full_access on # 防火墙设置 IPtables 的设置方式: vi /etc/sysconfig/iptables #编辑iptables文件,添加如下内容,开启21端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 40000:40010 -j ACCEPT #firewall 的设置方式,以下指令 firewall-cmd --zone=public --add-service=ftp --permanent firewall-cmd --zone=public --add-port=21/tcp --permanent firewall-cmd --zone=public --add-port=40000-40010/tcp --permanent
2.5、测试FTP连接
先在window命令行测试下是否能正常访问ftp,输入指令ftp 192.168.78.130 ,然后输入FTP的登录用户和密码设置中的用户名ftpuser和密码123456,直到弹出230 Login successful才算登录成功。
2.6、sftp连接
连接命令:sftp -P 22 用户名@Ip Address
示例:sftp -P 22 user1@192.168.3.5
3、连接错误解决
3.1、连接报身份认证失败
报认证失败,可能是由于ftp用户指定的主目录其所在绝对路径每一层目录权限都属于其拥有者,并未设置其他用户权限,可在ftp主目录的绝对目录下的每一层目录执行如下命令后,重试ftp连接。
chmod o+rwx 'ftp用户主目录的各层级目录'
ll:查看各层目录的其他用户权限是否赋予成功
至此就结束啦,感觉不错的记得点个赞。
无论风雨,和自己一决胜负吧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了