[工具] Shell 批量修改多个远程服务器某一个用户的过期密码

介绍:

作者:朱明宇
名称:批量修改多个远程服务器某一个用户的过期密码
作用:批量修改多个远程服务器某一个用户的过期密码

#使用方法:
1. 将此脚本和清单 $list 文件放在同一目录下
2. 清单 $list 里每一个远程服务器名或 IP 地址占用一行
3. 在此脚本的分割线内写入相应的内容
4. 在执行此脚本的系统上安装 expect
5. 给此脚本添加执行权限
6. 执行此脚本

脚本分割线里的变量:
1. oldpassword=123 #原密码
2. newpassword=abc #新密码
3. user=root #要修改密码的用户
4. list=servers.txt #指定服务器清单

脚本:

#!/bin/bash

####################### Separator ########################

oldpassword=123
newpassword=abc
user=root
list=servers.txt

####################### Separator ########################

set timeout 5

for i in `cat $list`
do
        echo $i
        ssh $i "whoami"

        if [ $? -eq 0 ];then
                continue
        fi

        expect << EOF
        spawn ssh $user@$i
        expect "Current password:"    {send "$oldpassword\r"}
        expect "New password:"        {send "$newpassword\r"}
        expect "Retype new password:" {send "$newpassword\r"}
        expect ">"                    {send "\r"}
        EOF

       echo

done

[工具] Shell 取消所有已开放的端口策略 (firewalld 版)

介绍:

作者:朱明宇
名称:取消所有已开放的端口策略
作用:取消所有已开放的端口策略

使用方法:
1. 给此脚本添加执行权限
2. 执行此脚本

脚本:

#!/bin/bash

systemctl start firewalld
systemctl enable firewalld

for i in `firewall-cmd --list-all | grep ports | egrep [0-9] | awk -F':' '{print $2}'`
do
        pports=`echo $i | awk -F'/' '{print $1}'`
        ptus=`echo $i | awk -F'/' '{print $2}'`

        firewall-cmd --remove-port=$pports/$ptus --permanent

done

firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload

[工具] Shell 取消所有已设置的复杂端口策略 (firewalld 版)

介绍:

作者:朱明宇
名称:取消所有已设置的复杂端口策略
作用:取消所有已设置的复杂端口策略

使用方法:
1. 给此脚本添加执行权限
2. 执行此脚本

脚本:

#!/bin/bash

systemctl start firewalld
systemctl enable firewalld

max=`firewall-cmd --list-all | grep "rule family" | wc -l`

for i in `seq 1 $max`
do
        echo $i
        lines=`firewall-cmd --list-all | grep "rule family" | sed -n $[i]p`
        ipvs=`echo $lines | awk -F'"' '{print $2}'`
        ips=`echo $lines | awk -F'"' '{print $4}'`
        ports=`echo $lines | awk -F'"' '{print $6}'`
        tus=`echo $lines | awk -F'"' '{print $8}'`
        acts=`echo $lines | awk -F'"' '{print $9}'`

        echo $ipvs $ips $ports $tus $acts
        firewall-cmd --remove-rich-rule="rule family="$ipvs" source address="$ips" port protocol="$tus" port="$ports" $acts" --permanent
done

firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload

[工具] Shell 开放所有正处于监听状态的端口策略 (firewalld 版)

介绍:

作者:朱明宇
名称:开放所有正处于监听状态的端口策略
作用:开放所有正处于监听状态的端口策略

使用方法:
1. 给此脚本添加执行权限
2. 执行此脚本

脚本:

#!/bin/bash

systemctl start firewalld
systemctl enable firewalld

for k in `ss -ntulap |grep 0.0.0.0 | grep LISTEN | awk '{print $5}' | awk -F':' '{print $2}'`
do 
        firewall-cmd --add-port=$k/tcp --permanent
done

firewall-cmd --reload