图片.png

用户和组

  • 系统上的每一个进程(运行的程序)都是作为指定用户运行的
  • 每一个文件是由一个特定的用户拥有
  • 访问文件和目录受到用户的限制
  • 与正在运行的进程相关联的用户确定该进程可访问的文件和目录

用户不能访问文件是进程访问文件,进程是以用户的身份运行。

查看当前登陆的用户信息:

  1. [root@bogon ~]# id
  2. uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

查看文件的owner:

[root@bogon ~]# ll /home/
总用量 0
drwx------. 2 alice alice 75 8月  13 15:29 alice

查看运行进程的username

[root@bogon ~]# ps aux | less
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.6 128020  6620 ?        Ss   08:22   0:03 /usr/lib/systemd/systemd --switched-r
oot --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    08:22   0:00 [kthreadd]
[root@bogon ~]# ps aux | grep httpd
root     11203  0.2  0.5 228308  5136 ?        Ss   11:55   0:00 /usr/sbin/httpd -DFOREGROUND
apache   11204  0.0  0.2 228308  2956 ?        S    11:55   0:00 /usr/sbin/httpd -DFOREGROUND
apache   11205  0.0  0.2 228308  2956 ?        S    11:55   0:00 /usr/sbin/httpd -DFOREGROUND
apache   11206  0.0  0.2 228308  2956 ?        S    11:55   0:00 /usr/sbin/httpd -DFOREGROUND
apache   11207  0.0  0.2 228308  2956 ?        S    11:55   0:00 /usr/sbin/httpd -DFOREGROUND
apache   11208  0.0  0.2 228308  2956 ?        S    11:55   0:00 /usr/sbin/httpd -DFOREGROUND
root     11235  0.0  0.0 112824   980 pts/0    R+   11:55   0:00 grep --color=auto httpd

Linux 系统中,每个用户的 ID 细分为 2 种,分别是用户 ID(User ID,简称 UID)和组 ID(Group ID,简称 GID),这与文件有拥有者和拥有群组两种属性相对应。
每个文件都有自己的拥有者 ID 和群组 ID,当显示文件属性时,系统会根据 /etc/passwd 和 /etc/group 文件中的内容,分别找到 UID 和 GID 对应的用户名和群组名,然后显示出来。
在 /etc/passwd 文件中,利用 UID 可以找到对应的用户名;在 /etc/group 文件中,利用 GID 可以找到对应的群组名。

和用户组相关的一些文件

/etc/passwd 是系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作。

root:x:0:0:root:/root:/bin/bash
root : x :0 :0 : root :/root :/bin/bash
用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell

/etc/shadow 用于存储 Linux 系统中用户的密码信息,又称为“影子文件”。

root:$6$e1wEsjsePwG2Nj9Y$7xvFKQtqINNLdJxWuQGYBRVIXTTSz20NOUh962PuljQ5jVLUFiyaQ0SdsBQgYu1siE/2iBvAtYoUbrwj9qJc/1::0:99999:7:::
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

加密密码:
$6$e1wEsjsePwG2Nj9Y$7xvFKQtqINNLdJxWuQGYBRVIXTTSz20NOUh962PuljQ5jVLUFiyaQ0SdsBQgYu1siE/2iBvAtYoUbrwj9qJc/1

$id$salt$encrypted

/ect/group 是用户组配置文件,即用户组的所有信息都存放在此文件中。
root:x:0:
组名:密码:GID:该用户组中的用户列表

/etc/gshadow 组用户的密码信息存储在 /etc/gshadow 文件中。
root:::
组名:加密密码:组管理员:组附加用户列表

加密算法$id:

$1: MD5
$5: SHA-256
$6: SHA-512

系统约定:

UID 范围 用户身份
0 超级用户。UID 为 0 就代表这个账号是管理员账号。在 Linux 中,如何把普通用户升级成管理员呢?只需把其他用户的 UID 修改为 0 就可以了,这一点和 Windows 是不同的。不过不建议建立多个管理员账号。
1~499 系统用户(伪用户)。也就是说,此范围的 UID 保留给系统使用。其中,1~99 用于系统自行创建的账号;100~499 分配给有系统账号需求的用户。

其实,除了 0 之外,其他的 UID 并无不同,这里只是默认 500 以下的数字给系统作为保留账户,只是一个公认的习惯而已。
500~65535 普通用户。通常这些 UID 已经足够用户使用了。但不够用也没关系,2.6.x 内核之后的 Linux 系统已经可以支持 2 个 UID 了。

Root用户
uid =0
拥有所有权利
该用户的权利覆盖文件系统上的普通权利
安装或删除软件并管理系统文件和目录
大多数设备只能由root控制