用户和组
- 系统上的每一个进程(运行的程序)都是作为指定用户运行的
- 每一个文件是由一个特定的用户拥有
- 访问文件和目录受到用户的限制
- 与正在运行的进程相关联的用户确定该进程可访问的文件和目录
用户不能访问文件是进程访问文件,进程是以用户的身份运行。
查看当前登陆的用户信息:
[root@bogon ~]# id
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控制