概念
用户标识符
每个登录的用户至少都有两个 ID
,一个是用户 ID
(UID
), 另一个是用户组 ID
(GID
);
用户 ID
信息存放在 /etc/passwd
文件中;
用户组 ID
信息存放在 /etc/group
文件中;
用户密码表存放在 /etc/shadow
文件中;
/etc/passwd 文件结构
每一行使用 “:” 来分隔开,共有七个字段,分别是
1. 账号名称
就是账号,用来对应 UID
;
2. 密码
早期 UNIX
系统的密码就是放在这字段上,后来这个字段的密码数据改放到 /etc/shadow
中了,所以这里会显示 x
;
3. UID
用户标识符。
ID 范围 |
该 ID 用户特性 |
---|---|
0 (系统管理员) | 当 uid 是 0 时,代表这个账号是 “系统管理员”!所以当你要让其他的账号名称也具有 root 的权限时,将该账号的 UID 改为 0 即可。这也就是说一个系统上的系统管理员不见得只有 root 。不过,不建议有多个账户的 uid 是 0 |
1 ~ 499 (系统账号) | 根据系统账号的由来,通常系统账号又被分为两种: 1 ~ 99: 由 distributions 自行创建的系统账号 100 ~ 499:若用户有系统账号需求时,可以使用的账号 uid |
500 ~ 65535 (系统管理员) | 给一般用户用的。事实上,目前的 Linux 内核(2.6.x)版已经可以支持到 (2^32 - 1)这么大的 uid 号码 |
4. GID
这个与 /etc/group
有关。用来规定组名与 GID
对应关系。
5. 用户信息列说明
这个字段基本上并没有什么重要用途,只是用来解释这个账号的意义而已。不过,如果你提供使用 finger
的功能时,这个字段可以提供很多的信息。
6. 主文件夹
这是用户的主文件夹。
7. Shell
当用户登录系统后就会取得一个 Shell
来与系统的内核通信以进行用户的操作任务。
/etc/group 文件结构
1. 用户组名称
2. 用户组密码
密码,已经移到 /etc/gshadow
文件中
3. 用户组ID
4. 此用户组支持的账号名称
命令
用户
新增
1 | # 新增普通用户, 会在/home 下创建同名文件夹,权限为 700,会创建同名的用户组 |
useradd
基本账号设置值参考文件在 /etc/default/useradd
文件中,但也可以由命令 useradd -D
调出; 关于 uid
/ gid
, 在 /etc/login.defs
;
修改密码
1 |
|
修改用户信息
1 |
|
删除
1 | 删除 username 用户 |
查询相关 UID/GID 信息
1 | # 查询 vbird2 用户的 uid / gid 等信息 |
查看当前用户支持的用户组
1 | groups |
查看登录系统的用户信息
1 | w |
查看登录系统的用户日志
1 | last |
用户对谈
语法:write 用户账号 [用户所在终端接口]
1 | # 比如 `root` 用户向 `vbird1` 用户发消息 |
如果 vbird1
不想要接收任何人的消息,执行 mesg n
, 当然 mesg
对 root
发来的消息没有抵抗力;如果想要解开的话 mesg y
;
如果要对所有人群发信息,用 wall
命令;
1 | wall "I will shutdonw my linux server..." |
用户组
切换有效用户组
1 | newgrp 新用户组名 |
新增用户组
1 | 新增名为 group1 的普通用户组 |
修改用户组信息
1 | # 将 group1 改名为 mygroup |
删除用户组
1 | # 删除用户组 mygroup |
用户组管理员
示例,
以下是 root
用户执行
1 | # 新建用户组 |
vbird1
用户登录
1 | # 查询用户信息 |