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
相关推荐
啊吧怪不啊吧23 分钟前
UU远程协助迎来升级!第一期更新实测
运维·服务器·远程工作
C_心欲无痕6 小时前
ts - tsconfig.json配置讲解
linux·前端·ubuntu·typescript·json
冰西瓜6007 小时前
国科大2025操作系统高级教程期末回忆版
linux
HIT_Weston7 小时前
93、【Ubuntu】【Hugo】搭建私人博客:面包屑(一)
linux·运维·ubuntu
cuijiecheng20188 小时前
Linux下Beyond Compare过期
linux·运维·服务器
喵叔哟8 小时前
20.部署与运维
运维·docker·容器·.net
HIT_Weston8 小时前
92、【Ubuntu】【Hugo】搭建私人博客:侧边导航栏(六)
linux·运维·ubuntu
CodeAllen嵌入式8 小时前
Windows 11 本地安装 WSL 支持 Ubuntu 24.04 完整指南
linux·运维·ubuntu
码农小韩9 小时前
基于Linux的C++学习——指针
linux·开发语言·c++·学习·算法
wdfk_prog10 小时前
[Linux]学习笔记系列 -- [fs]seq_file
linux·笔记·学习