一文熟悉 Linux 基础知识
用户与用户组
在 Linux 系统中,用户和用户组是管理权限和资源访问的核心机制。理解它们能帮你更好地掌握系统安全与协作。
用户 (Users)
定义: 系统中的每个操作者或服务都以一个用户的身份存在。
用户 ID (UID):
每个用户都有一个唯一的数字标识符。
- 0 (root): 超级用户,拥有系统最高权限。
- 1-999 (系统用户/伪用户): 预留给系统服务和进程(如
daemon,bin,mail,nginx等)。它们通常没有登录 Shell,用于隔离服务权限。 - 1000+ (普通用户): 供人类用户使用,拥有受限权限。
类型:
- Root 用户: 特权用户,可以执行任何操作。
- 系统用户: 运行后台服务和程序的非交互式用户。
- 普通用户: 登录并操作系统的用户,权限受限,通常在其
/home目录下活动。
主要文件:
/etc/passwd:存储用户账户基本信息(用户名、UID、GID、家目录、Shell)。/etc/shadow:存储加密的用户密码和密码过期信息(仅 root 可读)。
用户组 (Groups)
- 定义: 一组用户的集合。文件和目录的权限可以分配给用户组,从而简化多个用户对共享资源的访问管理。
- 组 ID (GID): 每个用户组都有一个唯一的数字标识符。
- 类型:
- 主组 (Primary Group): 用户创建时自动分配的默认组。用户创建的任何文件或目录,默认都属于其主组。
- 附加组 (Secondary/Supplementary Group): 用户可以同时属于一个或多个附加组,从而获得更多资源的访问权限。
- 主要文件:
/etc/group:存储用户组的基本信息(组名、GID、组成员)。
用户与用户组的关系
- 一对一或多对多: 一个用户必须有一个主组,但可以属于多个附加组。一个组可以包含多个用户。
- 权限管理: 文件和目录有所有者用户、所有者组以及其他用户的权限。当一个用户访问文件时,系统会根据用户身份、所属主组和附加组来判断其权限。
- 简化管理: 当多个用户需要相同的文件或目录权限时,将这些用户添加到同一个组,然后将文件/目录的组权限赋予该组,比单独设置每个用户的权限更高效。
Linux 目录结构
FHS 标准目录结构精简版
/bin: 用户二进制文件 (所有用户的核心可执行程序)。
/boot: 引导文件 (启动系统所需内核和引导程序)。
/dev: 设备文件 (硬件设备的接口,如硬盘、终端)。
/etc: 配置文件 (系统范围的配置和脚本)。
/home: 用户主目录 (普通用户的个人数据)。
/lib: 核心共享库 (/bin 和 /sbin 所需库,常链接至 /usr/lib)。
/media: 可移除媒体挂载点 (U 盘、CD/DVD 等临时挂载)。
/mnt: 临时文件系统挂载点 (临时挂载其他文件系统)。
/opt: 可选应用软件 (第三方独立软件包)。
/proc: 进程信息 (虚拟文件系统,实时系统和进程数据)。
/root: Root 用户主目录 (系统管理员的主目录)。
/run: 运行时可变数据 (系统启动后生成,重启清空)。
/sbin: 系统二进制文件 (Root 用户专属管理命令,常链接至 /usr/sbin)。
/srv: 服务数据 (系统提供服务的数据,如网站文件)。
/sys: 系统文件系统 (虚拟文件系统,内核和设备接口)。
/tmp: 临时文件 (所有用户可写,通常重启清空)。
/usr: Unix 系统资源 (大部分用户程序、库文件、文档等)。
/usr/bin: 大部分用户命令。/usr/sbin: 大部分系统管理命令。/usr/lib: 大部分库文件。/usr/local: 本地安装程序,不受系统升级影响。/usr/share: 架构无关的共享数据。
/var: 可变数据文件 (经常变化的数据,如日志、邮件、数据库)。