在 Linux 中,账号分为两类,一种是用户账号,另一种是组账号
用户账号包括实际人员和逻辑性对象,例如应用程序执行工作的账号也是用户账号的一种
而组账号是一个逻辑性的单元,用来集合特定的用户,以便于管理其中的所有成员对文件的访问权限
1、账号信息
(1)用户账号信息
用户账号信息记录在/etc/passwd
文件中,其中每一行代表一个用户的账号信息
每行以:
分割不同的字段记录,例如 root 管理员所在行是:root:x:0:0:root:/root:/bin/bash
每个字段所代表的含义如下:
- 名称:用户账号名称
- 密码:通常不是明文,一般用
x
表示 - UID:每一个用户账号都有一个唯一的标识,称为 UID
- GID:每一个组账号也都有一个唯一的标识,称为 GID
- 用户信息:该账号的附加信息
- 工作目录:用户的主工作目录,除 root 账号是
/root
外,其他账号默认是/home/username
- 登陆终端:用户登陆时使用的终端,默认是
/bin/bash
,可以使用chsh
命令更改登陆终端
出于安全性的考虑,/etc/passwd
文件不会记录密码,真正的密码会加密后记录在 /etc/shadow
文件
(2)组账号信息
在管理账号时,应以组为基本单位,组账号信息记录在 /etc/group
文件中,每一行代表一个组账号信息
每一行也是以 :
分割不同的字段记录,例如 root 管理员所属组所在行是:root:x:0:user1,user2
每个字段所代表的含义如下:
- 名称:组账号的名称
- 密码:通常不是明文,一般用
x
表示 - GID:组账号的唯一标识
- 用户列表:在该组账号下的用户账号,不同的账号之间用
,
隔开
同样的,对于组账号也存在一个 /etc/gshadow
文件用于提高密码的安全性
2、添加账号
(1)添加用户账号
可以使用 useradd [options] 账号名
命令添加用户账号,其常用的参数如下:
参数 | 描述 |
-e |
指定账号的有效期限 |
-d |
指定账号的登陆目录 |
-s |
指定账号的登陆终端 |
-g |
指定 GID |
-u |
指定 UID |
(2)添加组账号
可以使用 groupadd [options] 账号名
命令添加组账号,其常用的参数如下:
参数 | 描述 |
-g |
指定 GID |
-o |
允许使用重复的 GID |
3、修改账号
(1) 修改用户账号
可以使用usermod [options] 账号名
命令修改用户账号,其常用的参数如下:
参数 | 描述 |
-l |
修改账号的用户名称 |
-e |
修改账号的有效期限 |
-d |
修改账号的登陆目录 |
-s |
修改账号的登陆终端 |
-f |
修改密码的有效天数 |
-g |
修改 GID |
-u |
修改 UID |
(2)修改组账号
可以使用 groupmod [options] 账号名
命令修改组账号,其常用的参数如下:
参数 | 描述 |
-g |
修改 GID |
-o |
允许使用重复的 GID |
4、删除账号
(1)删除用户账号
删除用户账号比较复杂,需要按照以下的步骤逐一进行
- 在
/etc/passwd
文件中删除对应的用户记录 - 在
/etc/shadow
文件中删除对应的用户记录 - 在
/etc/group
文件中删除与用户同名的组记录
- 删除用户的主工作目录
(2)删除组账号
删除组账号只需要使用命令 groupdel 账号名
即可,但是此时组中任何一个用户都不能在系统登陆
5、密码管理
普通用户只能修改自己的密码,而管理员则可以管理所有用户的密码,一般常见的操作如下
- 修改密码:修改登陆密码
- 执行命令 passwd 可修改自己的密码,执行命令 passwd 用户名 可修改指定用户的密码
- 删除密码:删除密码后用户无需输入密码就能直接登陆
- 执行命令
passwd -d 用户名
,或者将/etc/paswswd
和/etc/shadow
文件中的密码字段置空 - 锁定密码:锁定账号后用户无法继续登陆
- 执行命令 passwd -l 用户名,或者在 /etc/passwd 文件中对应账号的行前面加上 # 锁定账号
- 打开密码:打开锁定的密码,让用户可以继续登陆
- 执行命令 passwd -u 用户名,或者在 /etc/passwd 文件中对应账号的行前面去掉 # 解除锁定
文章知识点与官方知识档案匹配,可进一步学习相关知识