linux脚本(shell)——输入密码脚本和怎么写病毒流氓脚本的思路

脚本1

难点1:统计变量的长度

wc -L和${#变量}

[root@fttsaxf script]# echo 123love|wc -L
7
[root@fttsaxf script]# name=iloveyou
[root@fttsaxf script]# echo ${#name}
8

难点2:使用正则去匹配

# "[^0-Z]"表示不在0-9和所有大小写字母中的符号,就是特殊符号。[],里边有^,就是表示取反的意思
[root@fttsaxf script]# echo "dsFdjgls123#"|egrep "[0-9]"|egrep "[a-Z]"|egrep "[^0-Z]"
dsFdjgls123#
[root@fttsaxf script]# echo "#"|egrep "[0-9]"|egrep "[a-Z]"|egrep "[^0-Z]"
[root@fttsaxf script]# echo $?
1

# 这段字符串必须满足所有的条件才能够算执行成功
# 第一段代码可以这样写
[root@fttsaxf script]# echo "dsFdjgls123#"|egrep "[0-Z]"|egrep "[^0-Z]"

'''
[0-9],表示0-9的集合里任意取一个
[a-z],表示小写字母
[A-Z],表示大写字母
[a-z],表示所有的大小写字母
[0-Z],表示数字和所有的大小写字母;相当于"\w"
"\W",表示所有的特殊字符;相当于[^0-Z]。[^0-Z],表示不是数字和所有大小写字母的内容
但"[^0-Z]"比"\W"多了"_"
'''
[root@fttsaxf script]# echo "_fdsjk#"|egrep "\W"
_fdsjk#
[root@fttsaxf script]# echo "_fdsjk#"|egrep "[^0-Z]"
_fdsjk#

# 第三和五问代码
#!/bin/bash

# read -s ,可以隐藏输入的内容
read -s -p "请输入密码:"  user_pwd   
if (( ${#user_pwd} >= 8))
then
	echo "你的密码长度合格,你的密码是$user_pwd  密码长度为${#user_pwd}"
	#echo "$user_pwd"   |  passwd + 用户  --stdin
	if echo "$user_pwd" |egrep "[a-z]"|egrep "[A-Z]"|egrep "[0-9]"|egrep "[^0-Z]"
	then
		echo "密码满足复杂性要求,包含大小写、数字、特殊符号 。密码为:$user_pwd"
	else
		echo "密码不满足复杂性要求,包含大小写、数字、特殊符号 。密码为:$user_pwd"
	fi
else
	echo "你的密码长度不合格"
fi


# 运行结果
[root@fttsaxf script]# bash recv_passwd.sh 
请输入密码:你的密码长度合格,你的密码是1313dsjigi  密码长度为10
密码不满足复杂性要求,包含大小写、数字、特殊符号 。密码为:1313dsjigi
[root@fttsaxf script]# bash recv_passwd.sh 
请输入密码:你的密码长度合格,你的密码是Fsjkgig*giasojg**561  密码长度为20
Fsjkgig*giasojg**561
密码满足复杂性要求,包含大小写、数字、特殊符号 。密码为:Fsjkgig*giasojg**561

脚本2

难点1:怎么找到uid大于500的用户和加了一些自己的字符串

[root@fttsaxf script]# cat /etc/passwd |awk -F ":" '$3 > 500 {print $1,"uid is",$3,"home directory is",$6}'|tail -5  # 这里只取后五个为了看效果
songqingshu_son uid is 7794 home directory is /home/songqingshu_son
wangchen_son uid is 7795 home directory is /home/wangchen_son
cali uid is 7796 home directory is /home/cali
dengjz uid is 7797 home directory is /home/dengjz
xiaohui uid is 7798 home directory is /home/xiaohui

若是不是用awk命令进行所有操作怎么写呢?

#!/bin/bash

cat /etc/passwd|awk -F : '{print $1,$3,$6}'  >user.txt
while read name uid home_dir   #按这三个变量依次导入文件里的内容,也就是name对应着$3,以此类推  
do
	if (($uid > 500))
	then
		echo "$name uid is $uid home is directory is $home_dir"
	fi
done <user.txt

总结:如何将一行里的不同的字段赋值给不同的变量

1、awk是使用$1,$1;2、while read name uid home_dir (这三个都是自己定义的变量)

脚本3

难点1:如何把文件传输出去?

1、scp,建立免密通道,可以百度或者看视频来获取;2、邮件

难点2:不管用户的服务器如何重启,你的这个程序都要能够运行。不能让用户删除你的这个脚本

1、计划任务;
2、profile文件,四个用户登录相关的配置文件。缺点:要用户登录或者执行bash的时候才能够运行。可以在这文件里边检查是否有计划任务,没有就添加计划任务
3、开机启动流程里执行脚本,检查是否有计划任务,没有就添加计划任务

比如:a->b->c-->d-->job,当我们用户发现了c,然后删除了c,当b检测到c被删除了,然后又重新建立一个c,然后又能够重新生成病毒脚本。

我们要是做的厉害的话,可以把最深处的a,做成进程。

牵扯到的技术点:

1、开机启动流程
2、计划任务
3、scp,免密通道
4、编写一个可以一直运行的进程
5、不同的程序之间环环相扣,互相检查,相互创建

警告非法控制其他人的服务器,窃取资料属于违法行为,乱搞的话怕是会吃几年牢饭。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FanMY_71

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值