用户密码管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
passwd 用户名
## 默认修改当前登录用户的密码
[root@localhost ~]# passwd
## 该命令只有超级用户可以执行
[root@localhost ~]# passwd zls
## 普通用户只能修改自己的密码
[zls@localhost ~]$ passwd
Changing password for user zls.
Changing password for zls.
(current) UNIX password:
原密码:
新密码:
确认密码:

## 免交互改密码
echo '密码'|passwd --stdin 用户名
CMDB:资产管理系统

## 生成随机密码
[root@localhost ~]# echo $RANDOM|md5sum|cut -c '1-10'
be1e4bbb9b
md5:校验文件完整性
md5sum:可以给一个字符串生成一段加密后的字符串
# -l:指定密码总长度
# -d:指定数字的个数
# -c:指定小写字母个数
# -C:指定大写字母个数
# -s:指定特殊符号个数
[root@localhost ~]# mkpasswd -l 24 -d 3 -c 6 -C 7 -s 8
%t[.xl5&74"LP'inQPr+_PWY

用户组管理(简单了解)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
##相关文件
/etc/group
/etc/gshadow
#group每列作用
[root@localhost ~]# head -1 /etc/group
root:x:0:zls444444,zls666
第一列:组名
第二列:组密码占位符
第三列:组GID
第四列:组中的附加成员

#gshadow每列作用
[root@localhost ~]# head -1 /etc/gshadow
root:::zls444444,zls666
root:$6$q0sHS/5GA2D/ARX$KlEkprHkTddlN9tTej7/ONeMswVmIFASVnhTQMfwN.ue2hDTmqlqXhiM
b6oBz8vDCQ/zBzDU2gS88j3pNoIXO.::zls444444,zls666
第一列:组名
第二列:组密码
第三列:组管理员
第四列:组中的附加成员

组相关命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#增
groupadd [选项] 组名
## 创建组
[root@localhost ~]# groupadd ooo
## 创建组并指定GID
[root@localhost ~]# groupadd ppp -g 666

#改
## 修改组的gid
[root@localhost ~]# groupmod ooo -g 888
## 修改组名
[root@localhost ~]# groupmod ooo -n xxx

#删
[root@localhost ~]# groupdel xxx

#设置组密码
[root@localhost ~]# gpasswd ppp
Changing the password for group ppp
New Password

#切换组身份
[root@localhost ~]# newgrp 组名

Linux中用户身份切换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
su 切换用户,使用普通用户登录,然后使用su命令切换到root。
优点:简单,方便
缺点:需要知道root密码,不安全,切换到root没有日志审计功能

su - 用户名 -c '命令''touch 1.txt') 可以不切换用户但是以普通用户执行命令

su - 用户名 su 用户名,会少加载一个profile的全局变量
## 从root用户切换到其他用户,不需要输入密码
## 普通用户切换到其他用户,需要输入密码
## 加载顺序
/etc/profile > /etc/profile.d/1.sh > /root/.bashrc > /etc/bashrc
/etc/profile
/etc/profile.d/1.sh
.bash_profile
/root/.bashrc
/etc/bashrc
个人配置文件: ~/.bash_profile ~/.bashrc
全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrc

用户身份提权

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
sudo 提权,当需要使用root权限时,进行提权,而无需切换至root用户。
优点:安全,方便
缺点:复杂

## 提权执行命令
[zls@localhost ~]$ sudo mkdir /opt/abc
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for zls:
zls is not in the sudoers file. This incident will be reported.
## 颁发圣旨(提权配置文件)
[root@localhost ~]# vim /etc/sudoers
在里面添加lgj用户权限
或者visudo命令添加,例如
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
lgj ALL=(ALL) ALL

上面注释的有别名,写上别名就可以设置权限,或者自己写某个命令的目录
root ALL=(ALL) ALL
lgj ALL=(ALL) /usr/bin/mkdir(这里也可也把上面某个别名注释去掉,写上别名即可使用那个权限)


## 设置命令别名
Cmnd_Alias CREATE = /bin/mkdir,/bin/touch
## 用户提权方法:
方法一:
### visudo不设置用户密码
[root@localhost ~]# visudo
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
zls ALL=(ALL) CREATE
cls1 ALL=(ALL) NOPASSWD: ALL
方法二:只要给用户加入wheel组中,就有sudo权限
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
%lgj ALL=(ALL) NOPASSWD: ALL
[root@localhost ~]# useradd lhq1 -G wheel
## 切换成普通用户可以查看我这个用户能执行哪些命令
[lhq2@localhost ~]$ sudo -l