Linux centos 7 vsftp本地部署脚本

下面是脚本:

bash 复制代码
#!/bin/bash
#function:vsftpd脚本
#author: 20230323  IT  小旋风

# 判断是否是root用户
if [ "$USER" != "root" ]; then
    echo "不是root  装个蛋啊"
    exit 1
fi

# 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld && echo "防火墙已经关闭"
sed -i 's/SELINUX=*/SELINUX=disabled/g' /etc/selinux/config && setenforce 0 && echo "关闭selinux"

# 安装vsftpd服务
yum install vsftpd -y

# 测试是否安装成功
if [ $? -eq 0 ]; then
    echo "vsftpd安装成功"
else
    echo "vsftpd安装失败,即将退出"
    exit 0
fi

# 定义用户变量
read -ep "请输入要创建的本地用户名" hch
read -ep "请输入本地用户密码" mq
IP=$(ip addr show ens33 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1)

# 用户创建
useradd $hch -s /sbin/nologin
echo "$mq" | passwd --stdin "$hch"

# 配置文件备份和修改
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back1
cat >> /etc/vsftpd/vsftpd.conf <<EOF
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/xferlog
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
EOF

# 此命令的作用是注释掉 /etc/pam.d/vsftpd 文件中所有行首不是 # 且行尾是 pam_shells.so 的行。
sed -i "s/^[^#].*pam_shells.so$/#&/g" /etc/pam.d/vsftpd

# 开启vsftpd服务
systemctl start vsftpd.service && systemctl enable vsftpd.service

if [ $? -eq 0 ]; then
    echo "vsftp服务开启   访问地址:$IP  用户:$hch   密码:$mq"
else
    echo "启动失败即将退出"
    exit 0
fi
相关推荐
sjg200104145 分钟前
Deepin 20.9 误装gcc-8-base_8.4.0-1ubuntu1~16.04.1_amd64 后卸载
linux·运维·服务器
一帘忧梦7 分钟前
linux 系统rcs脚本启动
linux·运维·lua
jerryinwuhan35 分钟前
1210_1 Linux
linux·运维·服务器
福尔摩斯张1 小时前
Linux信号捕捉特性详解:从基础到高级实践(超详细)
linux·运维·服务器·c语言·前端·驱动开发·microsoft
looking_for__2 小时前
【Linux】进程控制
linux
Xの哲學2 小时前
Linux电源管理深度剖析
linux·服务器·算法·架构·边缘计算
cypking2 小时前
Nuxt项目内网服务器域名代理访问故障排查
运维·服务器·php
破刺不会编程2 小时前
socket编程TCP
linux·运维·服务器·开发语言·网络·网络协议·tcp/ip
CILMY233 小时前
【Linux】进度条实践教程:使用Makefile构建项目
linux·进度条·make和makefile
沉在嵌入式的鱼3 小时前
linux串口对0X0D、0X0A等特殊字符的处理
linux·stm32·单片机·特殊字符·串口配置