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
相关推荐
阿巴~阿巴~11 分钟前
CPU 指令集、权限与用户态内核态机制
linux·运维·服务器·指令集·权限·用户态内核态
小涵34 分钟前
企业SRE/DevOps向的精通Linux课程培训课程
linux·运维·devops·1024程序员节
航Hang*44 分钟前
第1章:初识Linux系统——第8节:查看/修改权限控制和ACL
linux·运维·服务器·笔记·操作系统
一个处女座的程序猿O(∩_∩)O1 小时前
深入浅出 SSE:实现服务器向客户端的单向实时通信
运维·服务器
捷智算云服务1 小时前
DGX A100服务器常见故障解析与维修攻略
运维·服务器
安当加密1 小时前
基于TDE透明加密实现异地服务器间文件自动加密传输的实践与思考
运维·服务器
悠悠121381 小时前
Jenkins 从0基础到有点基础——如何安装
运维·jenkins
我爱钱因此会努力1 小时前
初始化服务器
linux·运维·服务器·tcp/ip·centos
曦月合一1 小时前
解决由于没有远程桌面授权服务器可以提供许可证,远程会话被中断.的方法
运维·服务器·window server
angushine1 小时前
Shell脚本判断服务器SSH免密是否配置完成
运维·服务器·ssh