因业务需要,在centos服务器上配置了FTP服务,做此随笔以记录。配置是以实现多用户多工作目录为目标而配置。
- 首先在服务器安装ftp:
yum install -y vsftpd
2. 一些vsftpd的相关命令:
查看服务状态:systemctl status vsftpd.service
开启服务:systemctl start vsftpd.service
设置服务开机自启:systemctl enable vsftpd.service
3. 设置SELinux。
查看SELinux策略: getsebool -a | grep ftp
开启full_access和home_dir:
setsebool -P ftpd_full_access on
setsebool -P tftp_home_dir on
4. 设置vsftpd.conf文件。
放开一些配置:local_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
在文件底部加入配置:
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
allow_writeable_chroot=YES
reverse_lookup_enable=NO
# 系统用户登录后的根目录
local_root=/var/ftp/pub
# 匿名用户登录后的根目录
anon_root=/var/ftp/test
# 设置用户独立配置文件保存目录
user_config_dir=/etc/vsftpd/userconfig/
5. 创建ftp账户。
执行命令:
echo -e "\n/sbin/nologin" >> /etc/shells
ftp根目录账号
useradd -d /var/ftp/pub/ -s /sbin/nologin -g ftp ftpadmin
passwd ftpadmin yourpassword
赋权:chown -R ftpadmin:ftpgroup /var/ftp/pub/
chmod /var/ftp/pub/
添加用户账号(chroot_list)
useradd -d /var/ftp/pub/train -s /sbin/nologin -g ftp trainuser
passwd trainuser yourpassword
同样进行赋权,跟文件夹授权。
6. 在user_list文件中添加ftpadmin、trainuser
并在chroot_list文件中添加trainuser
在/etc/vsftpd/下添加userconfig文件夹,并在文件夹下新建与用户同名的文件,配置用户根目录。
新建trainuser文件,并在文件中添加:local_root=/var/ftp/pub/train/ 保存退出。
7. 重启vsftpd服务
systemctl restart vsftpd
重启成功后,使用ftp协议连接测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义