centos ftp 权限控制比较严格 手动配置非常麻烦,搞了一键脚本,方便大家快速配置
1.创建sh脚本文件
sudo vim /root/install_vsftpd.sh
2.贴入以下内容
#!/bin/bash #此脚本目前只是为了方便centos7下安装vsftp,其他版本后期集成。 #ftp数据存放目录 # by liwentong 20191219 ftp_data=/home/ftp chcek_friewalld(){ echo "开始检查防火墙设置" systemctl status firewalld |grep runing & >/dev/null if [ $? -ne 0 ] then firewall-cmd --add-port=21/tcp --zone=public --permanent firewall-cmd --add-service=ftp firewall-cmd --reload fi if [ $? -eq 0 ] then echo "防火墙开启成功" fi useradd -s /sbin/nologin ftp } #搭建ftp install_vsftp(){ echo "开始安装vsftp 并且检查环境" yum -y install vsftpd libdb-utils if [ $? -ne 0 ] then echo "请检查你的yum源情况,是否出现无法用,可单独在终端执行 yum makecache 测试" exit 1 fi #检查防火墙,开放21端口 chcek_friewalld echo "开始配置ftp" mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak #配置数据写入到配置文件 cat >/etc/vsftpd/vsftpd.conf<<LWT listen=yes anonymous_enable=no dirmessage_enable=YES xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list chroot_local_user=yes guest_enable=YES guest_username=ftp user_config_dir=/etc/vsftpd/vsftpd_user_conf pam_service_name=vsftpd.vu allow_writeable_chroot=YES local_enable=YES LWT read -p "输入ftp用户:" ftp_user if [ ! -n "$ftp_user" ];then ftp_user=test fi read -p "输入ftp用户密码:" ftp_passwd if [ ! -n "$ftp_passwd" ];then ftp_passwd=123456 fi cd /etc/vsftpd echo $ftp_user >/etc/vsftpd/user.txt echo $ftp_passwd >>/etc/vsftpd/user.txt db_load -T -t hash -f user.txt vsftpd_login.db chmod 600 /etc/vsftpd/vsftpd_login.db touch /etc/pam.d/vsftpd.vu echo "判断此系统是32位操作系统还是64位" #判断centos系统位64位还是32位 xd=`getconf LONG_BIT` if [ $xd -eq '64' ];then echo "此系统为64位" echo "auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login" > /etc/pam.d/vsftpd.vu echo "account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login" >> /etc/pam.d/vsftpd.vu else echo "auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login" > /etc/pam.d/vsftpd.vu echo "account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login" >> /etc/pam.d/vsftpd.vu fi #限制用户切换工作目录 touch /etc/vsftpd/chroot_list echo $ftp_user >>/etc/vsftpd/chroot_list #配置虚拟用户的配置文件 mkdir -p /etc/vsftpd/vsftpd_user_conf cd /etc/vsftpd/vsftpd_user_conf #写入用户权限配置 cat >$ftp_user <<LWT write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES LWT echo "local_root="$ftp_data/$ftp_user>>$ftp_user mkdir -p $ftp_data chown -R ftp:root $ftp_data chmod o+rw $ftp_data mkdir -p $ftp_data/$ftp_user chmod -R 777 $ftp_data/$ftp_user systemctl restart vsftpd.service } #创建虚拟用户 create_user(){ ftp_passwd=123456 read -p "输入你要创建的用户名:" ftp_user if [ ! -n "$ftp_user" ];then echo "你没有输入用户名,退出" exit 1 else read -p "输入密码:" ftp_pass if [ ! -n "$ftp_pass" ];then echo "密码没有输入,默认123456" else ftp_passwd=$ftp_pass fi fi cd /etc/vsftpd echo $ftp_user >>/etc/vsftpd/user.txt echo $ftp_passwd >>/etc/vsftpd/user.txt db_load -T -t hash -f user.txt /etc/vsftpd/vsftpd_login.db chmod 600 /etc/vsftpd/vsftpd_login.db echo $ftp_user >>/etc/vsftpd/chroot_list cd /etc/vsftpd/vsftpd_user_conf cat >$ftp_user<<LWT write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES LWT echo "local_root="$ftp_data/$ftp_user>>$ftp_user mkdir -p $ftp_data/$ftp_user chmod -R 777 $ftp_data/$ftp_user } echo "输入你要操作的内容" select var in install_vsftpd create_user quit do case $var in install_vsftpd) install_vsftp; ;; create_user) create_user ;; quit) exit 1 ;; esac done
3.保存
:wq!
4.执行sh脚本
sudo sh install_vsftpd.sh
5.安装并输入用户名
登陆并上传测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2015-11-04 update更新另一个字段
2014-11-04 sql 存储过程 in 的两种写法