-
用户管理
-
1.用户/组基本概念
-
概念
-
Users and groups: . Every process (running program) on the system runs as a particular user. . Every file is owned by a particular user. . Access to files and directories are restricted by user. . The user associated with a running process determines the files and directories accessible to that process.
-
用户的作用
-
查看当前登录的用户信息:
-
[root@localhost ~]# id
-
uid=0(root) gid=0(root) groups=0(root)
-
-
查看文件的owner:
-
[root@localhost ~]# ll /home/
-
drwx------. 4 alice alice 4096 Jun 2 15:59 alice
-
drwx------. 2 root root 16384 Jun 1 23:09 lost+found
-
drwxr-xr-x 2 root root 4096 Jun 2 15:33 qianfeng
-
-
查看运行进程的username:
-
[root@localhost ~]# ps aux
-
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
-
root 1 0.0 0.0 19360 1536 ? Ss 13:29 0:00 /sbin/init
-
root 2 0.0 0.0 0 0 ? S 13:29 0:00 [kthreadd]
-
root 3 0.0 0.0 0 0 ? S 13:29 0:00 [migration/0]
-
root 4 0.0 0.0 0 0 ? S 13:29 0:00 [ksoftirqd/0]
-
-
-
-
用户组信息存储的文件:
-
1.用户基本信息文件
-
/etc/passwd(冒号分割为7列字段) root:x:0:0:root:/root:/bin/bash 用户名:x:uid:gid:描述:HOME:shell
-
root:用户名:登录系统的名字
-
X:密码占位符:,具体内容不在这里
-
0:UID: 用户的身份证号
-
系统约定: RHEL7 uid: 0 特权用户 uid: 1~999 系统用户 uid: 1000+ 普通用户
-
The root user . uid is 0 . all power . This user has the power to override normal privileges on the file system . installing or removing software and to manage system files and directorie . Most devices can only be controlled by root
-
-
-
0:GID:GROUP 组号
-
每创建一个用户,系统会自动创建同名的组
-
-
root:描述:比如经理 manager
-
默认是用户名
-
-
/root:家目录:登录系统时,所在目录
-
/bin/bash:登录shell:命令解释器
-
-
不能用vim的方式改这个文件,主要是来观察
-
-
2.用户密码信息文件
-
/etc/shadow(9列) root:$1$MYG2N:15636:0:99999:7: : :
-
了解即可
-
加密算法$id$salt$encrypted $1: MD5 $5: SHA-256 $6: SHA-512
-
root:$1$MYG2NDG6$a1wtyr5GDM2esAPjug0YP0:15636:0:99999:7:: : -------------------------- 1)“登录名”是与/etc/passwd文件中的登录名相一致的用户账号 2)“口令”字段存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令; 星号代表帐号被锁定; 双叹号表示这个密码已经过期了。 $6$开头的,表明是用SHA-512加密的, $1$ 表明是用MD5加密的 $2$ 是用Blowfish加密的 $5$ 是用 SHA-256加密的。 3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。 4)“最小时间间隔”指的是两次修改口令之间所需的最小天数。 5)“最大时间间隔”指的是口令保持有效的最大天数。 6)“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。 7)“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。(软限制。到期后多少天就不能用账号了。) 8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。(硬限制。) 9) 保留
-
-
-
-
3.组信息文件
-
/etc/group root:x:0: 组名:组密码:组ID:组成员
-
组成员默认为空
-
-
-
-
-
2.用户/组管理
-
用户:
-
==创建用户 未指定选项==
-
[root@localhost ~]# useradd user01 [root@localhost ~]# id user01 uid=1001(user01) gid=1001(user01) 组=1001(user01) 用户编号=具体数字(用户名) 组编号=具体数字(组名) 组=组ID(成员名字) 小结: 如果创建一个用户时,未指定任何选项,系统会创建一个和用户名相同的组作为用户的Primary Group.
-
-
==创建用户 指定选项==
-
[root@localhost ~]# useradd user02 -u 1503
-
创建用户user02,指定uid
-
-
[root@localhost ~]# useradd user03 -d /user03
-
创建用户user03 指定家目录
-
-
-
==删除用户========
-
[root@localhost ~]# userdel -r user02
-
-
==用户密码========
-
方法一:root修改其他用户(alice)密码
-
[root@localhost ~]# passwd alice
-
-
方法二:用户(zhuzhu)登录,自己修改密码。
-
[zhuzhu@localhost ~]$ passwd
-
-
-
==其它选项管理=======
-
[root@localhost ~]# usermod -s /sbin/nologin user02 修改登录SHELL
-
-
==组成员管理========
-
查看用户原先信息
-
[root@localhost ~]# id user02
-
uid=1002(user02) gid=1002(user02) 组=1002(user02)
-
-
将用户追加到hr组
-
语法
-
usermod -aG 组名 用户名
-
-
[root@localhost ~]# usermod user02 -aG hr
-
-
再次查看用户信息
-
[root@localhost ~]# id user02
-
uid=1002(user02) gid=1002(user02) 组=1002(user02),1005(hr)
-
-
将用户移除组(扩展)
-
语法
-
gpasswd -d user02 hr
-
-
-
-
-
用户组:
-
操作
-
创建一个hr组
-
[root@localhost ~]# groupadd hr
-
查看
-
[root@localhost ~]# tail -3 /etc/group
-
user03:x:1003:
-
user04:x:1004:
-
hr:x:1005:
-
说明该组已经 创建,但和任何用户都没有关系。
-
-
-
创建组net01,并指定gid 1007
-
[root@localhost ~]# groupadd net01 -g 1007
-
查看
-
[root@localhost ~]# grep 'net01' /etc/group
-
//查看/etc/group中组net01信息
-
-
-
删除组
-
[root@localhost ~]# groupdel net01
-
查看
-
[root@localhost ~]# tail -3 /etc/group
-
user03:x:1003:
-
user04:x:1004:
-
hr:x:1005:
-
-
-
-
分类
-
基本组
-
随用户创建,自动创建的同名组
-
-
附加组
-
用户加入的其他组。
-
-
-
-
-
3.提权(了解)
-
永久提权Switching users with su
-
[user01@localhost ~]$ id user01 uid=1003(user01) gid=1003(user01) 组=1003(user01) [user01@localhost ~]$ whoami user01 [alice@localhost ~]$ useradd u1 -bash: /usr/sbin/useradd: 权限不够 [alice@localhost ~]$ su - root password: [root@localhost ~]# useradd u1 成功
-
-
临时提权Running commands as root with sudo
-
sudo工作原理
-
将当前用户切换到超级用户下
-
然后以超级用户身份执行命令,执行完成后,直接退回到当前用户。
-
具体工作过程如下:
-
当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限
-
-->确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认
-
-->若密码输入成功,则开始执行sudo后续的命令
-
-
sudo配置文件语法
-
##语法
-
## user MACHINE=COMMANDS
-
## 用户 登录的主机=(可以变换的身份) 可以执行的命令
-
-
目标
-
创建普通用户xulei,使其具有sudo特权
-
-
示例1
-
观察授权信息
-
以root身份,授权普通用户xulei
-
[root@localhost ~]# vim /etc/sudoers
-
系统的授权文件
-
-
%wheel ALL=(ALL) ALL
-
允许wheel用户组 不输入密码 使用所有命令
-
-
将用户加入到组
-
创建xulei账号并加入组
-
[root@localhost ~]# useradd xulei -G wheel
-
-
查看xulei信息
-
[root@localhost ~]# id xulei
-
uid=1001(xulei) gid=1001(xulei) 组=1001(xulei),10(wheel)
-
-
-
切换用户登录
-
用户需要密码
-
# passwd xulei
-
-
切换用户xulei登陆
-
该用户一定要注销
-
-
-
使用sudo提权
-
[xulei@localhost ~]$ useradd gougou10
-
-bash: /usr/sbin/useradd: 权限不够
-
[xulei@localhost ~]$ sudo useradd gougou10
-
[xulei@localhost ~]$ id gougou10
-
uid=1002(gougou10) gid=1002(gougou10) 组=1002(gougou10)
-
-
-
-
-