Linux基础介绍-2——第一阶段

发布于:2025-08-19 ⋅ 阅读:(18) ⋅ 点赞:(0)

一、用户管理和组管理

在 Linux 系统中,用户(User) 和组(Group) 是权限管理的核心机制,用于控制用户对文件、目录及系统资源的访问权限,确保系统安全和有序管理。

1.1 用户(User)的概念

用户是 Linux 系统中访问资源的基本单位,每个用户通过唯一的用户 ID(UID) 被系统识别(用户名是 UID 的人性化标识)。

  1. 用户的分类
  • 超级用户(root):
    UID 固定为 0,拥有系统最高权限, 可操作所有文件和命令(如修改系统配置、管理其他用户等),是系统管理员的核心账号。
  • 系统用户(System User):
    由系统自动创建,用于运行服务或进程(如数据库、Web 服务器),通常不允许登录系统。
    UID 范围一般为 1~999(不同 Linux 发行版可能略有差异), 例如mysql用户用于运行 MySQL 服务。
  • 普通用户(Regular User):
    由管理员创建,用于日常操作,权限受限制(仅能访问自己的文件和被授权的资源)。
    UID 范围通常从 1000 开始, 例如user1、student等。
  1. 用户的核心文件
    /etc/passwd:存储所有用户的基本信息(用户名、UID、所属组 GID、主目录、登录 shell 等),格式如下:
root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000:user1:/home/user1:/bin/bash

(x表示密码存储在/etc/shadow中)
/etc/shadow:存储用户密码(加密形式)及密码有效期等安全信息,仅 root 可访问。

1.2 组(Group)的概念

组是多个用户的集合,用于批量管理权限。通过将用户加入组,用户可继承组的权限,避免对每个用户单独配置权限,提高管理效率。

  1. 组的分类
  • 基本组(Primary Group):
    • 用户默认所属的组,创建用户时自动生成(通常与用户名同名),用户的文件默认归属于基本组。
    • 在/etc/passwd中记录为用户的 GID(组 ID)。
  • 附加组(Supplementary Group):
    • 用户可额外加入的组,用于获取更多权限(一个用户可属于多个附加组)。
  1. 组的核心文件
  • /etc/group:存储所有组的信息(组名、组密码占位符、GID、组内用户列表),格式如下:
root:x:0:
sudo:x:27:user1,admin
user1:x:1000:

(sudo组中的用户可通过sudo命令获取临时管理员权限)

1.3 用户与组的关系

  • 一个用户必须属于一个基本组,可以同时属于多个附加组。
  • 用户的权限 = 自身权限 + 所属所有组(基本组 + 附加组)的权限总和。
  • 组的主要作用是简化权限分配:例如,将多个用户加入develop组,然后给develop组授予项目目录的访问权限,所有组内用户自动获得该权限。

1.4 常用管理命令

  • 用户常用管理命令:

    • useradd:创建用户
    • /etc/passwd:查看用户信息文件
    • passwd:设置用户密码
    • /etc/shadow:查看用户密码文件
    • usermod:修改用户属性
    • userdel:删除用户信息

    上述命令详细解释详见链接

  • 组常用管理命令:

    • groupadd:新建组
    • id:查看系统用户和用户所在组的信息
    • /etc/group:组信息文件
    • /etc/gshadow:组密码文件
    • groupmod:修改组属性
    • gpasswd:组管理命令
    • groupdel:删除组

    上述命令详细解释详见链接

二、权限管理

Linux 的权限管理是保障系统安全的核心机制,通过精细控制用户对文件 / 目录的访问权限(读、写、执行),确保资源被合法使用。其核心逻辑是:针对每个文件 / 目录,分别为「所有者」「所属组」「其他用户」三类主体分配不同权限。

2.1 权限的基本构成

1. 三类权限主体
Linux 中,每个文件 / 目录的权限针对以下三类主体设置:

  • u(User,所有者):创建文件 / 目录的用户(可通过 chown 修改)。
  • g(Group,所属组):文件 / 目录归属的组(可通过 chgrp 修改),组内用户共享该组权限。
  • o(Others,其他用户):既不是所有者,也不属于所属组的用户。

2. 三种基础权限
每种主体可拥有以下三种权限(分别对应读、写、执行):

权限字符 含义(文件) 含义(目录) 对应数字
r 读取文件内容(如 cat 列出目录内文件(如 ls 4
w 修改文件内容(如 vim 创建/删除/重命名目录内文件 2
x 执行文件(如脚本、程序) 进入目录(如 cd 1
- 无对应权限 无对应权限 0

2.2 权限的表示方式

权限通常有两种表示方式:字符模式和数字模式,用于直观展示或修改权限。
1. 字符模式(9 位字符)
用 9 个字符表示三类主体的权限(每 3 位一组,依次对应 u g o)。例如:

  • rwxr-xr–:
    • 所有者(u):rwx(读、写、执行)
    • 所属组(g):r-x(读、执行,无写权限)
    • 其他用户(o):r–(只读)

2. 数字模式(3 位数字)
将每组权限的数字值相加,得到 3 位数字(依次对应 u g o)。例如:

  • rwxr-xr-- 对应数字:
    • u:4+2+1=7,g:4+0+1=5,o:4+0+0=4 → 总数字 754。

2.3 权限管理的常用命令

  • chomd:权限管理
  • umask:预设权限,
  • chown:归属关系管理

上述命令详细解释详见链接

PS: 关于umask内容的相关补充:

umask的核心作用是标准化新文件 / 目录的初始权限,通过预先定义需要去除的权限,避免手动修改每个新创建文件的权限,同时减少因权限过高导致的安全风险。系统默认的 umask 通常为 002(普通用户)或 022(root 用户)。

  • 基本原理
    • 默认最大权限
      Linux 对新创建的文件和目录有预设的 “最大可能权限”:
      • 文件:默认最大权限为 666(即 -rw-rw-rw-,无执行权限,防止误执行脚本)。
      • 目录:默认最大权限为 777(即 drwxrwxrwx,目录需要执行权限才能进入)。
    • umask 的作用
      umask 定义了需要去除的权限(掩码值),计算方式为:
新文件实际权限 = 文件最大权限(666) - umask 值  
新目录实际权限 = 目录最大权限(777) - umask
  • 常见umask值及用途
umask 值 新文件权限 新目录权限 适用场景
000 666 777 完全开放(仅测试环境使用)
002 664 775 允许同组用户读写(团队协作)
022 644 755 限制同组和其他用户的写权限
077 600 700 仅所有者可访问(高安全性)

2.5 特殊权限

特殊权限作为了解知识,感兴趣可以查看链接


网站公告

今日签到

点亮在社区的每一天
去签到