权限和所有权 – Linux Foundation for DevOps

发布: (2025年12月26日 GMT+8 03:05)
6 min read
原文: Dev.to

Source: Dev.to

请提供您希望翻译的正文内容,我将为您翻译成简体中文并保持原有的格式、Markdown 语法以及技术术语不变。

介绍

作为准备 DevOps 职位的人,我正在以 精简方法 学习 Linux——只关注操作和调试真实服务器所需的内容。

本文涵盖 权限和所有权,并包括 动手演示(请参阅来自 DevOps 视角的 YouTube 播放列表)。

Objective

学习 Linux 文件 权限和所有权 的工作原理,以便您能够安全地在服务器、容器和 CI 环境中操作,避免意外破坏应用程序或阻止访问。

为什么这对 DevOps 很重要

这些技能在 DevOps 中随处可见:

  • 在 Linux 服务器上部署应用程序
  • 运行需要文件访问的容器
  • 修复 CI/CD 流水线中的“权限被拒绝”错误
  • 保护配置文件、SSH 密钥和脚本

如果权限设置错误,系统会悄无声息或危险地失败

Scope

Included

  • rwx 权限和数字模式(755644
  • chmodchownchgrp
  • usergroupothers
  • 基本 sudo 用法

Explicitly excluded (for now)

  • ACLs
  • SELinux / AppArmor
  • 高级 Linux 安全模型

Minimum Required Concepts

ConceptPurpose
rwx (read, write, execute)控制谁可以打开、修改或运行文件
user / group / others定义权限适用于谁
chmod更改文件和目录的权限
chown更改文件所有者
chgrp更改文件所属组
Numeric modes (755, 644)在脚本和 CI 中快速设置权限的方式
sudo安全地以 root 身份运行命令

实际使用(本地环境)

今天的实践方式:

  • 创建文件并更改其权限
  • 阻止和允许脚本执行
  • 在用户之间更改文件所有权
  • 使用 sudo 修复受保护的文件
  • 重现并修复 permission denied 错误

所有活动均在 本地 Linux 机器或虚拟机 上执行。

演示

方向 — rwx,用户、组、其他

  • 显示所有者(用户、组、其他)及其权限(rwx)。
  • 使用 ls -l 检查当前目录的权限。
  • 使用 file 确认文件类型,并查看所有者、组和其他人的权限。

数字模式

解释数字值的含义:

  • 7rwx
  • 6rw-
  • 5r-x
  • 4r--
  • 3-wx
  • 2-w-
  • 1--x

使用 stat 同时显示数字模式和可读的权限。

打破并修复访问 — chmod

  • 创建一个脚本文件,用 nano 编辑,添加一些命令,然后尝试执行它。
  • 创建名为 break 的目录,去掉执行(x)权限,并观察其效果。

所有权 — chown

  • 将脚本文件的所有者改为 root
  • 说明执行该文件时会发生什么,以及为什么会(或不会)成功。

组 — chgrp

  • 将脚本文件的组改为 root
  • 说明当组权限不足时执行可能会失败的原因。

sudo 基础

  • 使用 sudo 执行读、写、执行操作。
  • 说明结果以及 sudo 如何在不改变文件权限的情况下影响执行。

操作信心(当前状态)

  • 解释类似 -rwxr-xr-- 的权限字符串,以准确了解谁可以执行哪些操作。
  • 根据文件模式预测文件在运行前的行为。
  • 使用 chmod 有意 破坏并恢复执行
  • 使用 chown 更改所有者并了解其对执行的影响。
  • 使用 chgrp 通过组成员资格限制或允许访问。
  • 在必要时使用 sudo 覆盖权限,无需猜测。

适用于此的 DevOps 场景(前瞻性)

这些行为直接对应真实的 DevOps 故障,例如:

  • CI/CD 流水线因构建脚本缺少 +x 标志而失败。
  • Docker 容器因挂载卷属于 root 而崩溃。
  • Web 服务器因配置文件的组所有权错误而返回 403。
  • SSH 因权限过于宽松而拒绝使用密钥。
  • 云 VM 设置脚本因所有权意外被更改而失败。

注释与观察

  • Permission denied 几乎总是意味着 所有者错误或缺少 x 权限
  • 一个仅有 r 而没有 x 的文件可以被读取,但永远无法执行。
  • 将所有者更改为 root 可能会在不提示的情况下阻止或允许执行。
  • 只有当组权限允许时,组所有权才会起作用。
  • sudo 不会 更改文件权限——它更改的是 执行命令的用户

状态与下一步

当前状态: ⏳ 活跃

下一个工作卡: 用户与组

小而经过验证的进展胜过广泛但未经验证的知识。

Back to Blog

相关文章

阅读更多 »

Friday Five — 2026年1月16日

Red Hat Summit 注册现已开放——Red Hat Summit 将于2026年前往乔治亚州亚特兰大。今年的活动正逐步成为……