開發與維運

linux centos 遠程無法登錄自動檢測shell腳本

#!/bin/bash 
# 遠程無法登錄自動檢測
# 腳本開發:萬楊 
read -p "請輸入用戶名:" euser
fhqjc(){
sshport=$(netstat -ntlp | grep ssh | awk -F" " '{print $4}' | awk -F":" '{print $2}') ; echo "ssh 的遠程登錄端口為: $sshport"
sshfhq=(`firewall-cmd --list-all | grep -E "$sshport" | awk -F" " '{print $1}' | awk -F":" '{print $1}'`) 
echo "類型 ${sshfhq[*]} "

for i in ${sshfhq[*]}
   do 
       case $i in
      "ports") echo "已經開放通用端口 $sshport"
;;
       "rule") echo "已經配置規則組,運行指定ip訪問ssh端口$sshport"
;;
       *) echo "端口和規則組,都沒有配置開放"
;;
esac
  done 
echo "查看配置 "
firewall-cmd --list-all | grep $sshport
}
fhqjc

elogin(){
login=$(cat /etc/passwd | grep $euser | awk -F":" '{print $7}' | awk -F"/" '{print $3}') ; echo $login
   if [ $login = "nologin" ]; then
       read -p  "用戶: $euser 被禁止登錄,是否修改系統為允許它登錄:  yes/no: " xz
             if [ $xz = "yes" ] ; then
               NR=$(cat -n /etc/passwd | grep $euser | awk -F" " '{print $1}' )   
               sed -i "$NR s/sbin/bin/g" /etc/passwd
               sed -i "$NR s/nologin/bash/g" /etc/passwd
             fi
    else
        echo "系統沒有限制用戶: $euser 登錄;往下檢查ssh 是否限制,等待。。。。"
    fi
}
elogin


Leave a Reply

Your email address will not be published. Required fields are marked *