Linux用户管理--用户和用户组

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 保留字段 暂时没有使用

你可能感兴趣的:(Linux用户管理--用户和用户组)