centos7.9 ftp 搭建

发布时间 2023-07-29 09:37:33作者: 记忆抹不去

脚本使用介绍:

  • 执行脚本根据提示输入ftp密码即可
  • 默认目录/data/ftp ,如需更改修改脚本第三行:ftp_dir='/data/ftp'  将/data/ftp替换
  • 默认用户名ftpuser 如需更改,修改脚本第四行

  部署完成配置文件默认设置为只能ftp用户访问ftp服务,只允许访问ftp目录不能访问其他路径。需要修改查看配置文件进行修改配置。

#!/bin/bash
#设置ftp目录
ftp_dir='/data/ftp'
ftp_user='ftpuser'
if command -v vsftpd &> /dev/null;then
echo "vsftpd 已经安装,版本信息如下:"
vsftpd -version
else
echo "vsftpd 未安装,正在进行安装..."

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
sudo yum install vsftpd -y

mkdir -p $ftp_dir

useradd -d /data/ftp -s /sbin/nologin $ftp_user

echo "设置ftp用户密码"
passwd $ftp_user

firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload

cat >/etc/vsftpd/vsftpd.conf<<EOF
# 禁止匿名访问
anonymous_enable=NO

# 允许本地用户登录
local_enable=YES

# 允许用户写入
write_enable=YES

# 限制用户只能在自己的主目录中访问文件
chroot_local_user=YES
allow_writeable_chroot=YES

# 设置FTP根目录为/data/ftp
local_root=$ftp_dir

# 阻止用户离开主目录
userlist_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
pam_service_name=vsftpd

EOF
echo "/sbin/nologin" >> /etc/shells
usermod -s /sbin/nologin $ftp_user
chown -R $ftp_user:$ftp_user $ftp_dir
systemctl enable vsftpd.service
systemctl start vsftpd.service
systemctl status vsftpd.service

if [ $? -eq 0 ];then

echo "安装完成!"
else
echo "安装失败!"
fi

fi