目录
什么是用户?
- 用户账户为不同人员和运行的程序之间提供安全边界。
- 在内部,系统通过分配唯一的标识号UID来区分不同的用户账户。在大多数情况下,系统会为该用户分配一个密码,证明是登录的授权用户。系统使用 /etc/passwd 文件 存储有关本地用户的信息。
- 系统中的每个进程(运行程序)都以一个特定用户运行,每个文件都有一个特定用户作为其所有者。
- 用户有三种主要类型:超级用户、系统用户和普通用户。
- 超级用户:就是root用户,UID=0,具有系统的最高权限。包括安装软件、修改系统配置和管理其他用户账户。
- 系统用户:由系统程序创建的,用于运行后台服务或守护进程。它们通常具有较低的 UID 并且不用于登录。
- 普通用户:供用户进行日常系统管理,通常具有有限的权限,不能执行需要管理员权限的操作。
- 使用 id 命令 可以显示当前登录用户的信息。id username 显示其他用户信息。
- 使用 ls -l 命令 查看文件所有者。ls -ld 命令 查看目录所有者,而不是该目录的内容。
- 使用 ps 命令 查看进程信息,默认仅显示当前shell中的进程。ps -a 命令 可查看某一终端相关的所有进程。ps -u 命令 可查看与进程关联的用户。
- USER:显示进程所有者用户名。
- PID:显示进程的进程 ID(Process ID)。
-
%CPU:显示进程使用的 CPU 百分比。
-
%MEN:显示进程使用的内存百分比。
-
VSZ:显示进程的虚拟内存大小(Virtual Size)。
-
RSS:显示进程的常驻内存大小(Resident Set Size),即进程实际使用的物理内存大小。
-
TTY:显示与进程相关的终端设备。
-
STAT:显示进程的状态,常见的状态包括:
R
:运行状态。S
:休眠状态。D
:不可中断的等待状态。Z
:僵死状态。T
:停止状态。 -
START:显示进程启动的时间,通常显示为月日时间(例如 Mar25 09:10)。
-
TIME:显示进程已经运行的时间,通常显示为小时:分钟:秒的格式。
-
COMMAND:显示启动进程的命令或可执行文件的路径。
- 使用 cat /etc/passwd 命令 查看 /etc/passwd 文件存储的有关本地用户的信息。
- 此用户的用户名。
- 用户的加密密码以前存储在这里,这现在是一个占位符。
- 此用户账户的UID编号。
- 此用户账户的主要组的GID编号。
- 此用户的简短注释、描述或真实姓名。
- 用户的主目录,以及登录shell启动时的初始工作目录。
- 此用户的默认shell程序,在登录时运行。一些账户将其修改为 /sbin/nologin 来禁止使用该账户来进行交互式登录。
什么是组?
- 组是用户的集合,组中用户共享文件和其他系统资源的访问权限。组可向一组用户授予文件访问权限。
- 在内部,系统通过分配唯一的标识号GID来区分不同的组。默认情况下,系统使用 /etc/group 文件存储有关本地组的信息。
- 使用 cat /etc/group 命令 查看 /etc/group 文件存储的有关某个组的信息。
- group01:此组的名称。
- x:以前的组密码字段,现在是一个占位符。
- 10000:此组的GID编号。
- user01,user02,user03:属于此组成员的用户列表,作为一个补充组。
主要组和补充组
- 在创建普通用户时,会创建一个与用户同名的组,作为该用户的主要组。该用户是这个用户私有组(主要组)的唯一成员。
- 每个用户有且只有一个主要组。对于本地用户而言,这个组按照GID列在 /etc/passwd 文件中,主要组拥有用户创建的文件。
- 用户还可以有补充组。补充组中的成员资格存储在 /etc/group 文件中。根据用户所在组对文件是否具有访问权限,将授予用户对文件的访问权限,不论这些组是主要组还是补充组。例如,用户user01有一个主要组user01以及两个补充组wheel1和webadmin,那么该用户就可以读取这三个组中任何一个组有权读取的文件。
- id命令 可以显示用户的组成员资格。