Linux-用户和用户组管理
User
用户的唯一标识符是 UID 而不是用户名 (但有些服务是检查用户名).
用户登录 Linux 时是比对 /etc/passwd
中的 UID.
UID 分布
0
, root1-999
, 系统用户 (虚拟用户), 不提供密码登录1000-60000
, 普通用户
查看用户类别
1 |
|
常见参数:
-u
,-user
, 只输出有效 UID-n
,-name
,-un
只输出名字-g
, 输出 effective group id,-gn
输出 effective groups name-G
, 输出所有 group id,-Gn
输出所有 group name
useradd 创建用户
语法:
1 |
|
常见选项:
-g
,--gid
, 指定 primary group-G
,--groups
, 指定 supplementary groups-d
,--home-dir
, 指定家目录-s
,--shell
, 指定 login shell
指定用于主组以及家目录
1 |
|
指定附加组
1 |
|
指定登录的 shell
1 |
|
usermod 修改用户
语法:
1 |
|
常用选项:
-u
,--uid
, 修改用户 UID-g
,--gid
, 修改用户 primary group-G
,--groups
, 修改用户 supplementary groups-d
,--home-dir
, 修改用户家目录-s
,--shell
, 修改 login shell-l
,--login
, 修改登录名称
修改用户登录名称
假设有一个用户叫 jane
, 将其登录名改为 haha
:
1 |
|
注意这里改变后, 家目录名没有改变.
userdel 删除用户
语法:
1 |
|
常见选项:
-f
,--force
, 强制删除用户账号-r
,--remove
, 删除用户的同时删掉与用户相关的所有文件
passwd 修改用户密码
语法:
1 |
|
常用选项:
-n
,--mindays
, 设置修改密码最短天数, 即用户在这几天内不能修改密码-x
,--maxdays
, 设置密码有效最长天数, 超过这个天数后, 将会要求用户修改密码-w
,--warndays
, 设置用户在密码过期前多少天受到警告信息-i
,--inactive
, 设置密码过期多少天后禁用账户-d
,--delete
, 删除用户密码-S
,--status
, 显示用户密码信息
Group
每一个 group 都会被分配一个特有的 id 号 – gid, 用于唯一标识.
同一个 group 下的用户可以共享该组下的文件.
root 用户组的 gid 为 0.
系统会预留一些较前的 GID 给系统用户.
相关概念
Effective group
指与当前进程或会话关联的用于权限检查的组.
Primary group
Primary group, 主组, 通常与用户的用户名对应, 在用户创建时自动分配. 每个账户只有一个主组.
主组只能由 root 来改变.
Supplementary groups
一个用户可以有多个 Supplementary groups, 以此控制访问权限.
用户自己可以改变 Supplementary groups.
groupadd 添加组
语法:
1 |
|
常用参数:
-g
,--gid
, 指定 GID-r
,--system
, 创建系统组-f
,--force
, 强制创建, 即使已经存在-p
,--password
, 指定用户组的密码
创建一个组, 但是不设置任何内容 (比如指定 gid 等).
1 |
|
指定创建组的 gid
1 |
|
强制创建一个系统用户组
1 |
|
groupmod 修改组
语法:
1 |
|
常用选项;
-g
,--group
, 修改 GID-n
,--new-name
, 修改 group name-o
,--non-unique
, 允许使用重复的 GID-p
,--password
, 更改密码
groupdel 删除组
语法:
1 |
|
常用选项:
-f
,--force
, 强制删除
gpasswd 关联用户和组
gpasswd
可以添加或删除用户到组中.
语法:
1 |
|
常用选项:
-a
,--add
, 添加用户到一个组-d
,--delete
, 从一个组删除用户-M
,--member
, 指定一个组的成员列表-A
,--administrators
, 设置一个组的管理员列表-r
,--remove-password
, 移除组的密码-R
, 向其他成员限制访问组
添加一个用户到指定组
1 |
|
相关文件
/etc/passwd
存放账户主要信息. 所有用户可读.
每一行记录一个用户, 有七个字段, 如:
1 |
|
/etc/shadow
存放账户密码信息. 只有 root 可读.
每一行记录一个用户, 有九个字段, 如:
1 |
|
/etc/group
存放所有用户组的信息, 每一行记录一个组.
每一行四个字段:
1 |
|
/etc/gshadow
保存组的加密信息, 如用户组管理密码.
每一行记录一个组, 每一行四个字段:
1 |
|
Linux-用户和用户组管理
http://example.com/2024/03/07/Linux-用户和用户组管理/