一、用户管理命令(补充)
1、查询用户:
id
显示用户UID GID
显示用户属于组
判断用户是否存在
w
查询负载信息
显示谁登陆了系统,在干啥
顶替了uptime,查询负载
顶替了who,显示登陆信息
whoami:当前用户名
last
用户的登录信息(谁什么时间从哪里登录,从时候退出)
根据时间段,找出谁登陆了系统
lastlog
显示所有用户最近1次的登录时间
ps:查看系统的进程,如: ps -ef|grep sshd
uptime:查询系统总共运行了多长时间和系统的平均负载
相关连接https://www.processon.com/view/link/59ffcfe6e4b06bed41ccb8d6
2、保护用户密码
数字、大字母、小字母、符号
12位以上,上面3种
记录密码
keepass工具
3、批量添加用户并设置随机密码
3.1 #批量添加用户stu01 stu02 stu03,并设置密码123456
最终目标
useradd stu01 ;echo 123456|passwd --stdin stu01
useradd stu02 ;echo 123456|passwd --stdin stu02
useradd stu03 ;echo 123456|passwd --stdin stu03
第1个里程碑-生成用户名
[root@oldboyedu59 ~]# echo stu{01..3}|xargs -n1
stu01
stu02
stu03
第2个里程碑-命令拼接
利用sed/awk 里面
sed 's###g' 后两个井号之间写什么 屏幕就显示什么
[root@oldboyedu59 ~]# echo stu{01..3}|xargs -n1|sed -r 's#(.*)#useradd \1;echo 123456|passwd --stdin \1#g'
useradd stu01;echo 123456|passwd --stdin stu01
useradd stu02;echo 123456|passwd --stdin stu02
useradd stu03;echo 123456|passwd --stdin stu03
awk 利用 "" 双引号里面写什么 屏幕就显示什么
[root@oldboyedu ~]# echo stu{07..10}|xargs -n1|awk '{print "useradd "$1";echo 123456|passwd --stdin $1"}'|bash
第3个里程碑-把内容运行
bash 命令解释器
[root@oldboyedu59 ~]# echo pwd
pwd
[root@oldboyedu59 ~]# echo pwd|bash
/root
[root@oldboyedu59 ~]# echo hostname
hostname
[root@oldboyedu59 ~]# echo hostname |bash
oldboyedu59
找一个 进行测试 测试成功最终交给bash运行
[root@oldboyedu59 ~]# useradd stu02;echo 123456|passwd --stdin stu02
Changing password for user stu02.
passwd: all authentication tokens updated successfully.
交给bash运行
[root@oldboyedu59 ~]# echo stu{01..3}|xargs -n1|sed -r 's#(.*)#useradd \1;echo 123456|passwd --stdin \1#g' |bash
Changing password for user stu01.
passwd: all authentication tokens updated successfully.
useradd: user 'stu02' already exists
Changing password for user stu02.
passwd: all authentication tokens updated successfully.
Changing password for user stu03.
passwd: all authentication tokens updated successfully.
3.2 批量添加用户stu04 stu05 stu06 随机8位密码
第1个里程碑-生成用户名
[root@oldboyedu59 ~]# echo stu{01..3}|xargs -n1
stu01
stu02
stu03
第2个里程碑-生成随机密码
方法1 tr + head
[root@oldboyedu59 ~]# tr -cd 'a-zA-Z0-9'
第3个里程碑-命令拼接
利用sed/awk 里面
sed 's###g' 后两个井号之间写什么 屏幕就显示什么
[root@oldboyedu ~]# echo stu{04..6}|xargs -n1 |sed 's#.*#useradd &;p=$(date +%N);echo $p|passwd --stdin &;echo $p & >>/p.txt#g'
useradd stu04;p=$(date +%N);echo $p|passwd --stdin stu04;echo $p stu04 >>/p.txt
useradd stu05;p=$(date +%N);echo $p|passwd --stdin stu05;echo $p stu05 >>/p.txt
useradd stu06;p=$(date +%N);echo $p|passwd --stdin stu06;echo $p stu06 >>/p.txt
注:&---sed命令中s###g,表示前面的正则匹配中的内容
awk 利用 "" 双引号里面写什么 屏幕就显示什么
[root@oldboyedu ~]# echo stu{04..6}|xargs -n1|awk '{print "useradd "$1";p=$(tr -cd 'a-zA-Z0-9' >/root/pass.txt"}'
useradd stu04;p=$(tr -cd a-zA-Z0-9 >/root/pass.txt
useradd stu05;p=$(tr -cd a-zA-Z0-9 >/root/pass.txt
useradd stu06;p=$(tr -cd a-zA-Z0-9 >/root/pass.txt
第4个里程碑-交给bash执行 并 检查
取出一条执行写的命令是否正确
[root@oldboyedu ~]# useradd stu04;p=$(tr -cd a-zA-Z0-9 >/root/pass.txt
useradd: user 'stu04' already exists
Changing password for user stu04.
passwd: all authentication tokens updated successfully.
确定没问题后,将拼接的命令交给bash执行
[root@oldboyedu ~]# echo stu{04..6}|xargs -n1|awk '{print "useradd "$1";p=$(tr -cd 'a-zA-Z0-9' >/root/pass.txt"}'|bash
useradd: user 'stu04' already exists
Changing password for user stu04.
passwd: all authentication tokens updated successfully.
Creating mailbox file: File exists
Changing password for user stu05.
passwd: all authentication tokens updated successfully.
Creating mailbox file: File exists
Changing password for user stu06.
passwd: all authentication tokens updated successfully.
[root@oldboyedu ~]#
检查创建的用户是否可以正常登陆
stu04 GdUaOS5O
stu05 uIoyFbQZ
stu06 GPtdWOUI
[root@oldboyedu ~]# su - oldboy
Last login: Thu Apr 25 12:20:03 CST 2019 on pts/1
[oldboy@oldboyedu ~]$ su - stu04
Password:
Last failed login: Thu Apr 25 12:22:21 CST 2019 on pts/1
There were 3 failed login attempts since the last successful login.
[stu04@oldboyedu ~]$