1. 用户标识符:UID 和 GID

每个登录用户至少会获取两个id(user ID 和 group ID)

1.1 用户登录流程:

1 先查找/etc/passwd是否存在输入的账号,如果有,读取对应的UID和 GID(在/etc/group)以及家目录和shell设置。
2 再进入/etc/shadow核对输入的密码是否跟用户密码一致。
3 如果一切正常,进入shell管理阶段。
image.png

1.2 跟用户账号有关的文件:

1.2.1 /etc/passwd

image.png
每一行都代表一个账号,上面是系统默认自带的账号,它们是系统正常运行所必须的,如 bin、daemon称之为系统账号。
root:x:0:0:root:/root:/bin/bash
每行账号信息用:分割,共有7个信息,以root账号为例
1 账号名称:root,方便用户,不用记数字,跟网址一样,不需要记住ip
2 密码: x,都是显示x,为了安全,把密码数据放到/etc/shadow 了
3 UID:0 ,真正的用户标识符。账号名称就是跟它对应的。
当UID为0时,代表是系统管理员。如果其他账号UID设为0,也就具有root权限。
1~999,保留给系统使用的ID。
1000~60000,给一般用户用。
4 GID:0, 与/etc/group有关。
5 用户信息说明: 表明账号的意义。
6 家目录:/root 。用户登录成功后就会跑到的目录。默认的用户家目录为/home/userName
7 shell: /bin/bash。 用户登录系统后就会获取一个shell来与系统的内核沟通。为啥默认的shell为bash,就是这 设定

1.2.2 /etc/shadowimage.png

同理用:分割,且有九个信息
分别是:
账号名称(与/etc/passwd对应)
密码(加过密)
最近修改密码日期
密码不可修改天数(设置为0,则表示随时可修改)
密码需要重新修改的天数(强制用户多旧需要重置密码)
密码需要修改期限前的警告天数
密码过期后的账号宽限时间
账号时效日期
保留字段

1.3 用户组

1.3.1 /etc/group 和 /etc/gshadow

/etc/group

image.png
同理:分割,共4部分,分别是:
组名 / 用户组密码 / GID / 此用户组支持的账号的名称
(一个账号可以加入多个群组,那某个账号想要加入此群组时,将该账号填入这个字段即可,
如:root:x:0:root,dmtsai )

/etc/gshadow

image.png

  1. 组名
  2. 密码栏,同样的,开头为 ! 表示无合法密码,所以无群组管理员
  3. 群组管理员的账号 (相关信息在 gpasswd 中介绍)
  4. 该群组的所属账号 (与 /etc/group 内容相同)

1.3.2 初始用户组(inital group)

每个使用者在他的 /etc/passwd 里面的第四栏的 GID , 那个 GID 就是所谓的『初始群组 (initial group) 』!也就是说,当用户一登陆系统,立刻就拥有这个群组的相关权限的意思
因为是初始群组, 使用者一登陆就会主动取得,不需要在 /etc/group 的第四个字段写入该账号的!

1.3.3 有效用户组(effective group)

查看当前支持的用户组—groups
image.png

image.png
第一个输出的群组即为有效群组 (effective group)
通常有效群组的作用是在新建文件
去创建一个新档,例如: 『 touch test 』,那么这个文件的拥有者为 dmtsai ,而且群组也是 dmtsai .
image.png

1.3.3 切换有效用户组

newgrp groupname
前提是要切换到的用户组必须是用户当前已经支持的,比如目前支持root/admin/common,那么该命令只能在这三个之间切换。

2 账号管理

2.1 新增用户 useradd [-xxxxxx]

有一堆可选项配置,不过有一些系统默认,比如自动创建家目录,且权限700,比如创建同名用户组
image.png
image.png
配置项举例:
新增boss2,配置UID为1600,且初始用户组为boss1
image.png
image.png

2.2 删除用户 userdel username

image.png

2.3 设置密码 passwd username

默认新增账号后是锁定状态
image.png
root账号给boss2设置密码,(注意如果passwd 后没用户名,则就变成修改当前用户的密码了)
image.png
image.png
可以登录了
image.png

2.4 修改用户信息 usermod [-] username

2.5 查询相关uid和gid —- id username

image.png

3 用户组管理

3.1 新增用户组 groupadd [ -g gid] [-r] groupname

image.png
image.png

3.2 修改 groupmod [-g gid] [-n group_new_name] groupname

修改employ为staffs
image.png
image.png

3.3 删除 groupdel [groupname]

4 身份切换

因为系统账号权限高,容易产生误操作等问题,一般建议使用一般账号登录,需要高级别权限时,再切换到系统账号。比如一般账号切换成root,有两种方式:

4.1 su (switch user)

可以进行任意身份切换: su [-lm] [-c xx] [username]
需要切换账号的密码,如果直接su ,表示切换到root,同时su -(带不带-)区别很大,不带-,不能完全切换到root变量。
-c “commonds” 只使用一次root命令就自动回复原本身份
exit 退出su环境,回复原本身份
风险:每个账号都需要知道root密码
image.png

4.2 sudo

sudo [-b] [-u username] commond
sudo的执行者仅需知道自己的密码。sudo可以让你以其他用户身份执行命令(通常是使用root的身份)
只有规范到/etc/sudoers内的用户才能执行sudo这个命令,默认只有root可用改命令。
image.png
把boss2加到/etc/sudoers,需要用visudo命令(有语法检查)
image.png
默认只有root,把boss2加到后面
image.png
再次使用sudo,可以了
image.png

5 主机用户信息

5.1 查询用户:w who last lastlog

w/ who : 查询目前已登录在系统的用户
image.png

5.2 用户交谈 write mesg wall

write user [终端]
image.png
image.png