Linux用户管理--用户和用户组
2020-03-25 本文已影响0人
Hero_seven
1. 用户和用户组
Linux是一个多用户分时系统,在系统中使用用户的概念,一方面可以使识别不同的用户,另一方面也可以为用户设置合理的文件权限,为每个用户的数据提供安全保障。Linux采用用户组的概念,更灵活地管理用户和控制文件权限。
1.1 UID和GID
- UID
Linux系统采用一个32位的整数来记录和区分不用的用户,这个数字成为UID(User ID)。Linux系统中的用户分 为3类:普通用户、根用户、系统用户。
用户类别 | UID | 说明 |
---|---|---|
普通用户 | >=500 | 在添加普通用户时,系统默认用户ID从500开始编号 |
根用户 | 0 | 就是root账户,拥有对系统的完全控制权:可以修改、删除 任何文件,运行任何命令 |
系统用户 | 1-499 | 指系统运行是必须有的用户,但并不是指真实的使用者。 比如运行MySQL数据库服务时,需要使用系统用户mysql 来运行mysqld进程。 |
使用ps aux命令可查看当前系统的所有进程,其中第一列为用户名称。
root@iZuf68w1n1tjmyizdqe7bfZ:~# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 37676 4396 ? Ss Mar11 0:11 /lib/systemd/systemd --system --deserialize 19
root 2 0.0 0.0 0 0 ? S Mar11 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Mar11 0:47 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Mar11 0:00 [kworker/0:0H]
...
www-data 5458 0.0 0.3 125448 3300 ? S Mar11 0:00 nginx: worker process
root 8403 0.0 0.4 32628 4720 ? Ssl Mar16 10:17 /usr/sbin/aliyun-service
root 11554 0.0 0.7 174260 8092 ? Ssl Mar11 0:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
systemd+ 12731 0.0 0.1 26948 1276 ? Ss Mar11 0:00 /lib/systemd/systemd-networkd
...
-
GID
Linux系统中的用户组也是通过数字来区分的,这用用于区分不同用户组的ID称为GID(Group ID) -
查看UID和GID
使用ls -ln查看文件时,第三、四列为UID和GID。
-n参数表示用户和用户组的名称以UID和GID的形式显示。
root@iZuf68w1n1tjmyizdqe7bfZ:~/projects/redash# ls -ln
total 8
-rw-r--r-- 1 0 0 1078 Mar 12 10:02 docker-compose.yml
-rw-r--r-- 1 0 0 0 Mar 16 22:54 env
-rwxr-xr-x 1 0 0 3115 Mar 11 17:15 steup.sh
- 查看自己的用户ID和用户组
id:确认自己的UID
groups:确认自己的用户组
root@iZuf68w1n1tjmyizdqe7bfZ:~# id
uid=0(root) gid=0(root) groups=0(root),120(docker)
root@iZuf68w1n1tjmyizdqe7bfZ:~# groups
root docker
- who查看系统当前登录用户
第一列:用户名
第二列:登录方式;tty表示设备终端,如图形界面和文字界面;pts表示虚拟终端,如命令行窗口
第三列:登录时间
第四列:从哪个IP地址登录
calabash@iZuf68w1n1tjmyizdqe7bfZ:~# who
calabash tty7 2019-12-09 20:04 (:0)
calabash pts/0 2019-12-09 20:20 (:0.0)
calabash pts/1 2019-12-09 20:27 (:0.0)
1.2 /etc/passwd和/etc/shadow
Linux系统登录时必须要输入用户名和密码,而系统用来记录用户名、密码最重要的两个文件就是/etc/passwd和/etc/shadow。
- /etc/passwd文件
root@iZuf68w1n1tjmyizdqe7bfZ:~# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
...
/etc/passwd内容格式说明
列数 | 含义 | 说明 |
---|---|---|
1 | 用户名 | 是UID的字符串标记方式,方便阅读 |
2 | 密码 | 在旧的UNIX系统中,该字段是用户加密后的密码,现在已经 不再使用,而是将密码放在/etc/shadow中,所以此处都只是 一个字母x |
3 | UID | 系统用来区分不同用户的整数 |
4 | GID | 系统用来区分不同用户组的整数 |
5 | 说明栏 | 类似于【注释】,现在已经不再使用 |
6 | 家目录 | 用户登录后,所处的目录,即用户家目录 |
7 | 登录Shell | 用户登录后,所使用的Shell |
- /etc/shadow文件
root@iZuf68w1n1tjmyizdqe7bfZ:~# cat /etc/shadow
root:$6$UFy1RY5W$JmnwQa3Ks6KtpdjRcAjkAtcjeGVt/AJki0/GxBC/qb55JZW2LtUVF8DKwwwaZj9CwUiOJuyHMg7PCjKQXRlif1:18065:0:99999:7:::
daemon:*:17743:0:99999:7:::
bin:*:17743:0:99999:7:::
...
/etc/shadow内容格式说明
列数 | 含义 | 说明 |
---|---|---|
1 | 用户名 | UID的字符串标记方式,方便阅读 |
2 | 密码 | 经过加密后的密码 |
3 | 密码的最近修改日 | 这个数字是从1970/1/1至密码修改日的天数 |
4 | 密码不可修改的天数 | 修改密码之后,几天内不可修改密码, 如果是0,则随时可以修改。 |
5 | 密码重新修改的天数 | 考虑密码使用一段时间后可能会泄漏,可以设置 一个修改时间,在密码到期之前系统会提醒用户 修改密码 |
6 | 密码失效前提前警告的天数 | 设定密码到期前几天内开始提醒用户修改密码 |
7 | 密码失效宽限天数 | 如果密码到期,过了几天后将会失效,无法登陆 系统 |
8 | 账号失效日期 | 一般为空 |
9 | 保留字段 | 暂时没有使用 |