0
点赞
收藏
分享

微信扫一扫

先用python添加用户,再用shell脚本将python程序添加的用户删除

1.python代码添加用户(在这里用列表推导生成100个用户)

import random,subprocess
from string import digits, ascii_letters
dic={'tom':'tom','jack':'123'}
def get_password(n=8):
password = ""
for i in range(n):
temp = random.choice(digits + ascii_letters)
password += temp
return password

def useradd(username,password,filename):
data=subprocess.run(f'id {username} &>/dev/null',shell=True)
if data.returncode == 0:
print(f"用户{username}已存在")
else:
subprocess.run(f'useradd {username}',shell=True)
subprocess.run(f'echo {password} |passwd --stdin {username}',shell=True)
with open(f"{filename}",mode='a') as fw:
fw.write(f'{username}:\t{password}\n')

if __name__ == '__main__':
user_list = [f'user{i}' for i in range(1,101)] #生成用户个数101-1
for username in user_list:
useradd(username,get_password(),'/opt/user.txt') #包含用户信息

1.1刚开始查看opt目录下只有一个文件​​userdel.sh​​是已经写好的脚本

[root@bee opt]# ls

​​userdel.sh​​

1.1.1、先查看系统中用户,这里是21个

[root@bee opt]# cat /etc/passwd |wc -l

21

python代码运行效果如下

更改用户 user1 的密码 。

更改用户 user2 的密码 。

.........

1.2运行python程序后再次查看,发现用户增加到121个了。

[root@bee opt]# cat /etc/passwd | wc -l

121

1.3python在opt下产生了user.txt文件

[root@bee opt]# ls

userdel.sh  user.txt

1.4查看user.txt文件内容

[root@bee opt]# cat user.txt

user1: x2lySpNy

user2: ewIIRoCF

........

2.shall删除用户${user%:} 因为生成的用户有面跟了个‘:‘(如上),所以在这里要先进行去尾工作

#!/bin/bash
num=0
for user in $(cat user.txt)
do
num=$[num+1]
if [ $[num%2] != 0 ];then
x=${user%:}
userdel -r $x
fi
done

2.1运行shall脚本后

[root@bee opt]# bash ​​​userdel.sh​​​

2.2此时再次查看用户又回到了21

[root@bee opt]# cat /etc/passwd | wc -l

21

举报

相关推荐

0 条评论