linux学习笔记 · 2022年5月2日 0

Linux基础-用户管理与组管理

一、分类

1、按账户身份的访问控制进行分类

①用户账号(用 UID 来识别)

②组账号(用 GID 来识别)

2、按用户账号分类

①超级用户 root

②系统用户

③普通用户

3、按组账号分类(组账号用来区分权限,不用于登录)

基本组 (私有组)

附加组 (从属组)

二、账号文件与密码文件

1、本地账号数据的存放在本地磁盘中,包括用户账号数据文件和组账号数据文件

1)用户账号数据文件

/etc/passwd(用户账号文件)

/etc/shadow (用户密码文件)

2)组账号数据文件

/etc/group(组账号文件)

/etc/gshadow(组密码文件)

2、用户初始配置文件


1)配置文件来源

新建用户时,根据 /etc/skel 模板目录复制

2)主要的初始配置文件

~/.bash profile: 每次登录时执行

~/.bashrc: 每次进入新的 Bash 环境时执行

全局配置文件:/etc/bashrc、/etc/profile

3、用户账号文件


1)/etc/passwd 保存用户帐号的基本信息

2)实例

[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
... ... ...

每个用户记录一行,以: 分割为 7 个字段
字段 1: 用户帐号的名称
字段 2: 密码字串或占位符 x
字段 3: 用户帐号的 UID 号
字段 4: 所属基本组的 GID 号
字段 5: 用户全名
字段 6: 家目录
字段 7: 登录使用的解释器

4、用户密码文件


1) /etc/shadow 保存密码字串 / 有效期等信息

2)实例

[root@localhost ~]# cat /etc/shadow
root:$6$Jjo9h9zNw... ...J/:264:0:99999:7:::
... ... ...

每个用户记录一行,以: 分割为 9 个字段

字段 1: 用户帐号的名称

字段 2: 加密后的密码字符串

字段 3: 上次修改密码的时间

字段 4: 密码的最短有效天数,默认 0

字段 5: 密码的最长有效天数,默认 99999

字段 6: 密码过期前的警告天数,默认 7

字段 7: 密码过期后多少天禁用此用户账号

字段 8: 帐号失效时间,默认值为空

字段 9: 保留字段 (未使用)

5、组账号文件


1)/etc/group 保存组号的基本信息

2)实例

[root@localhost ~]# cat /etc/group
root:x:0:
... ... ...

每个组记录一行,以: 分割为 4 个字段

字段 1: 组帐号的名称

字段 2: 密码占位符 x

字段 3: 组帐号的 GID 号

字段 4: 本组的成员用户列表

6、组密码文件


1)/etc/gshadow 保存组帐号的管理信息

2)实例

[root@localhost ~]# cat /etc/gshadow
root:::
... ... ...

每个组记录一行,以: 分割为 4 个字段

字段 1: 组帐号的名称

字段 2: 加密后的密码字符串

字段 3: 本组的管理员列表

字段 4: 本组的成员用户列表

三、相关命令

1、useradd 命令

1)功能

useradd 添加用户

2)格式

useradd  [选项] … 用户名

3)常用命令选项

-u: 指定 UID

-d: 指定家目录,缺省为 / home / 用户名

-G: 指定所属的附加组

-s: 指定用户的登录解释器

4)实例

[root@localhost ~]# useradd -u 10010 -d /opt/wangwu -s /bin/bash -G zhaolu wangwu
#添加wangwu用户,指定UID为10010,家目录设置为/opt/wangwu,指定登录解释器为/bin/bash,指定所属附加组为zhaolu

2、usermod 命令

1)功能

usermod 修改用户

2)格式

usermod d[选项] … 用户名

3)常用命令选项

-l: 更改用户帐号的登录名称

-u: 用户 id

-d: 家目录

-s: 登录解释器

-G: 附加组(重置附加组)

4)实例

[root@localhost ~]# usermod -l wuqi -u 123456 -d /home/wangwu -s /sbin/nologin -G wangwu wangwu

#将用户wangwu更改登录名称为wuqi,用户id改为123456,家目录改为/home/wangwu,附加组改为wangwu,登录解释器改为/sbin/nologin(该解释器不用于登录)

3、passwd 命令

1)功能

设置用户密码

2)格式

passwd [选项] … 用户名

3)常用命令选项

–stdin: 从标准输入 (例如管道操作) 读入密码

4)实例

[root@localhost ~]# echo 123456 | passwd --stdin wangwu
#通过 --stdin选项设置密码为123456,免除交互过程

4、userdel 命令

1)功能

userdel 删除用户

2)格式

userdel [选项] 用户名

3)常用命令选项

-r : 连同家目录 / 用户邮件一起删除

4)实例

[root@localhost ~]# userdel -r wangwu
#删除用户wangwu

5、id 命令

1)功能

查询账号 id

2)格式

id [选项] … 用户名

3)实例

[root@localhost ~]# id root
uid=0(root) gid=0(root) groups=0(root)

6、groupadd 命令

1)功能

groupadd 添加组账号

2)格式

groupadd [选项] 组名

3)常用命令选项

-g: 指定 GID

4)实例

[root@localhost ~]# groupadd -g 1234 wangwu
[root@localhost ~]# grep wangwu /etc/group
wangwu:x:1234:wangwu

7、gpasswd 命令

1)功能

gpasswd 管理组成员

2)格式

gpasswd [选项] … 组名

3)常用命令选项

-A: 定义组管理员列表

-a: 添加组成员(每次只能加一个)

-d: 删除组成员(每次只能删一个)

-M: 定义组成员用户列表(可设置多个)

4)实例

[root@localhost ~]# gpasswd -A wuqi wangwu
[root@localhost ~]# grep wangwu /etc/gshadow
wangwu:!:wuqi:
#wuqi设置为wangwu组管理员
[root@localhost ~]# gpasswd -M wuqi,zhangsan,lisi wangwu
[root@localhost ~]# grep wangwu /etc/gshadow
wangwu:!:wuqi:zhangsan,lisi
#wuqi,zhangsan,lisi设置为wangwu组的组成员
[root@localhost ~]# gpasswd -d lisi wangwu
Removing user lisi from group wangwu
[root@localhost ~]# grep wangwu /etc/gshadow
wangwu:!:wuqi:zhangsan
#将用户删除lisi从wangwu组删除
[root@localhost ~]# gpasswd -a lisi wangwu
Adding user lisi to group wangwu
[root@localhost ~]# grep wangwu /etc/gshadow
wangwu:!:wuqi:zhangsan,lisi
#将用户lisi加入wangwu组

8、groupdel 命令

1)功能

groupdel 删除组(删除的目标组不能是用户的基本组)

2)格式

groupdel 组名

3)实例

[root@localhost ~]# grep wangwu /etc/gshadow
wangwu:!:wuqi:zhangsan,lisi
[root@localhost ~]# groupdel wangwu
[root@localhost ~]# grep wangwu /etc/gshadow
#删除wangwu组,再次搜索发现没有输出,证明成功

本篇文章来源于微信公众号: 入门小站