一:概念
- 在 Linux 中,分为三种用户
- 普通用户 (即为所有使用 Linux 的真实用户)
- 根用户 (即为 root 用户,拥有对于系统的完全控制)
- 系统用户 (系统运行时的必须用户,但并不是真实用户,例如 PHP 的 www-data)
- UID/GID (用户ID/组ID)概念
- 在 Linux 中,使用一个 32位整数 来记录每一个用户(USER ID 简称 UID)
- 这意味着在 Linux 中,可以有 40亿 个不同的用户。
- 系统默认从 500之后创建用户/组 (1-499系统用户使用)
- 用户的 UID/GID(Group ID 简称 GID) 为 0.
- 用户信息存在哪?
- 在 /etc/passwd 记录了每一个用户组/权限等信息
- 由于每个用户都有权限查看 /etc/passwd 权限.对于密码来说,是不安全的。
- 所以现代 Linux 将 密码信息剥离到了 /etc/shadow 里面,只有 root 用户 可以查看
二: 账号管理
- useradd 添加用户
- 推荐使用 useradd -m 用户名 创建用户,这样会同时生成用户 ‘家(home)’ 目录。
root@1feebb8a548b:~# useradd -m homework root@1feebb8a548b:~# cd /home/homework/
root@1feebb8a548b:/home/homework# pwd
/home/homework
- 用户创建成功后,Linux 会在在 /etc/passwd 和 /etc/shadow 追加该用户记录,同时分配一个 UID 和 GID
cat /etc/passwd
...
homework:x::::/home/homework: cat /etc/shadow
...
homework:!:::::::
- 同时创建这个用户组
cat /etc/group
...
homework:x::
- passwd 修改密码
- 没有设置过密码的用户(在 /etc/shdow 里面会有 ! 作为标识) 是不允许登录的.
- usermod 修改用户
- 冻结账户 usermod -L 用户名
- 解冻账户 usermod -U 用户名
- 指定家目录 usermod -d /home/homework_new -m 用户名
- -m 的作用为,创建新的家目录文件 并指向新的家目录
- usedel 删除用户
- 使用 usedel 删除用户, 同时会删除 /etc/passwd 和 /etc/shadow 的记录
- 但是 Linux 出于安全考虑,并不会删除所有的用户记录(保留邮件和家目录)
- 如果想彻底删除,使用 usedel -r 用户名 可以删除与用户相关的所有信息。
三: 用户组管理
- groupadd 新增用户组
- groupadd 组名,新增的用户组可在 /etc/group 中查看
- groupdel 删除用户组
- groupdel 组名, 如果组内有成员,则删除失败
四: 用户信息
- id (查看自己的 UID 和 GID)
- who (查看当前登录用户)
homework@lihong ~ $ who
用户名 来源 日期
homework pts/ -- : (xx.xx.xx.xx)
homework pts/ -- : (xx.xx.xx.xx)
- w (查看当前登录用户详细信息)
17:48:12 up 77 days, 21:26, 8 users, load average: 0.03, 0.06, 0.01
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
用户名 终端 来源 登录时间 闲置时间 与终端相关的CPU运行量 与当前WHAT进程消耗的CPU时间总量 当前运行进程
homework pts/1 xxx.xx.xxx.xx 15:07 6:15 0.07s 0.07s -bash
homework pts/2 xxx.xx.xxx.xx Wed15 25:13m 0.08s 0.01s tail -f php-error.log
homework pts/9 xxx.xx.xxx.xxx 17:47 0.00s 0.00s 0.00s w
-