#!/bin/sh
timeout=3
cmd="id > /tmp/b4"
login(){
for i in `cat user_p.txt`
do
#echo "$in"
ip=`echo $i|awk -F "," '{print $1}'`
echo $ip
user=`echo $i|awk -F "," '{print $3}'`
#echo $user
passwd=`echo $i|awk -F "," '{print $4}'`
strlen=`echo $passwd | grep -E --color '^(.{8,}).*$'`
#密码长度是否8位以上(包含8位)
strlow=`echo $passwd | grep -E --color '^(.*[a-z]+).*$'`
#密码是否有小写字母
strupp=`echo $passwd | grep -E --color '^(.*[A-Z]).*$'`
#密码是否有大写字母
strts=`echo $passwd | grep -E --color '^(.*W).*$'`
#密码是否有特殊字符
strnum=`echo $passwd | grep -E --color '^(.*[0-9]).*$'`
#密码是否有数字
#-n 判断字符不为空 返回真
if [ -n "${strlen}" ] && [ -n "${strlow}" ] && [ -n "${strupp}" ] && [ -n "${strts}" ] && [ -n "${strnum}" ]
then
echo "" >> os_check.out
else
echo "$i------"###密码复杂度不符###"" >> os_check.out
fi
#echo $pass
port=`echo $i|awk -F "," '{print $2}'`
#echo $port
result=`sshpass -p "$passwd" ssh -p $port -o StrictHostKeyChecking=no -o ConnectTimeout=$timeout $user@$ip $cmd`
if [ $? -ne 0 ];then
echo "$i------"###登录失败用户名或密码错误###"" >> os_check.out
# else
# echo "$i + "success""
fi
# echo "$ip" >> result.txt
done
echo ""
}
login
cat user_p.txt
192.168.153.146,22,root,QWer12#$
#!/bin/sh
timeout=3
cmd="id > /tmp/b4"
IP=$(ip -4 route get 8.8.8.8 2>/dev/null | head -1 | awk '{print $7}')
login(){
for i in `cat user_list.txt`
do
ip=`echo $i|awk -F "," '{print $1}'`
echo $ip
user=`echo $i|awk -F "," '{print $3}'`
passwd=`echo $i|awk -F "," '{print $4}'`
strlen=`echo $passwd | grep -E --color '^(.{8,}).*$'`
strlow=`echo $passwd | grep -E --color '^(.*[a-z]+).*$'`
strupp=`echo $passwd | grep -E --color '^(.*[A-Z]).*$'`
strts=`echo $passwd | grep -E --color '^(.*W).*$'`
strnum=`echo $passwd | grep -E --color '^(.*[0-9]).*$'`
#-n 判断字符不为空 返回真
if [ -n "${strlen}" ] && [ -n "${strlow}" ] && [ -n "${strupp}" ] && [ -n "${strts}" ] && [ -n "${strnum}" ]
then
echo "$ip+$user""###口令正常###" >> user_result.txt
else
echo "$ip+$user------"###密码复杂度不符###"" >> user_result.txt
fi
port=`echo $i|awk -F "," '{print $2}'`
result=`sshpass -p "$passwd" ssh -p $port -o StrictHostKeyChecking=no -o ConnectTimeout=$timeout $user@$ip $cmd`
if [ $? -ne 0 ];then
echo "$ip+$user------"###登录失败用户名或密码错误###"" >> user_result.txt
fi
done
echo ""
}
check(){
cat /etc/passwd |grep -v nologin |awk -F: '{print $1}' > $IP.txt
sed -i "s/^/$IP,/g" $IP.txt
for i in `cat $IP.txt`
do
ip=`echo $i|awk -F "," '{print $1}'`
user=`echo $i|awk -F "," '{print $2}'`
for ui in `cat user_list.txt`
do
u_ip=`echo $ui|awk -F "," '{print $1}'`
u_user=`echo $ui|awk -F "," '{print $3}'`
if [[ $ip == $u_ip ]] && [[ $user == $u_user ]]
then
echo "$ip+$user""###用户存在###" >> user_result.txt
else
echo "$ip+$user""###用户不存在###" >> user_result.txt
fi
done
done
echo ""
}
han(){
sort user_result.txt | uniq > user_result.out
rm -rf user_result.txt
}
login
check
han
#注 若 user_list.txt 不传IP参数可将IP 替换脚本中与ip相关参数 不传端口号参数可将$port替换为服务器ssh端口号
#user_list.txt
#192.168.153.145,22,root,QWer12#$
#192.168.153.145,22,root,QWer12