当前位置: 首页 > article >正文

unix/linux,sudo,其基本属性、语法、操作、api

现在我们要深入到sudo的“微观结构”了——它的属性、语法、操作以及是否有传统意义上的“API”。这就像我们从宏观的宇宙现象深入到基本粒子的相互作用一样,充满了探索的乐趣!

一、 sudo 的基本属性 (Fundamental Attributes)

这些属性是sudo作为一款软件和系统工具的核心特征:

  1. 可执行文件 (Executable)

    • sudo本身是一个编译后的二进制可执行文件,通常位于/usr/bin/sudo/bin/sudo
  2. SetUID Root 程序 (Set User ID Root Program)

    • 关键属性sudo程序文件通常设置了SetUID位,并且其所有者是root用户。
    ls -l $(which sudo)
    # 输出可能类似:-rwsr-xr-x 1 root root 157000 Jan 1 2023 /usr/bin/sudo
    # 注意那个 's' 位,它替代了所有者的 'x' 位,表示SetUID
    
    • 含义:当任何用户执行一个设置了SetUID位且所有者为root的程序时,该程序在执行期间会以root用户的权限运行。这是sudo能够提升权限的根本机制。它先以root身份启动,然后根据/etc/sudoers的策略决定是否以及如何为用户执行后续命令。
  3. 配置文件驱动 (Configuration File Driven)

    • 其行为完全由/etc/sudoers文件(以及/etc/sudoers.d/目录下的片段文件)中的策略定义。
  4. 日志记录能力 (Logging Capability)

    • 通过syslog(或系统配置的其他日志机制)记录所有授权尝试和执行结果。
  5. 用户认证机制 (User Authentication Mechanism)

    • 依赖PAM (Pluggable Authentication Modules) 或系统自身的认证方式来验证发起用户的密码。
  6. 有状态 (Stateful - regarding timestamp)

    • sudo会在成功验证用户密码后,在一段时间内(timestamp_timeout)记住这个验证状态,允许用户在此期间无需重复输入密码即可再次使用sudo。这个状态信息通常存储在/var/run/sudo/ts/或类似目录下,以用户名为文件名。

二、 sudoers 文件的语法 (Syntax of /etc/sudoers)

/etc/sudoers的语法是sudo功能的核心,虽然初看复杂,但其设计是为了提供极大的灵活性和精确性。记住,始终使用<

http://www.lryc.cn/news/2400840.html

相关文章:

  • 文本内容变化引起布局尺寸变化 导致的 UI 适配问题
  • 01-Redis介绍与安装
  • 十六、【前端强化篇】完善 TestCase 编辑器:支持 API 结构化定义与断言配置
  • Kafka broker 写消息的过程
  • VR博物馆推动现代数字化科技博物馆
  • Python爬虫之数据提取
  • 第2讲、Odoo深度介绍:开源ERP的领先者
  • 【TCP/IP和OSI模型以及区别——理论汇总】
  • 【HarmonyOS 5】生活与服务开发实践详解以及服务卡片案例
  • LEAP模型能源需求/供应预测、能源平衡表核算、空气污染物排放预测、碳排放建模预测、成本效益分析、电力系统优化
  • STM32 I2C通信外设
  • 13. springCloud AlibabaSeata处理分布式事务
  • MySQL 表的内连和外连
  • VR线上展厅特点分析与优势
  • Python基于SVM技术的手写数字识别问题项目实战
  • Elasticsearch的写入性能优化
  • 2024年数维杯国际大学生数学建模挑战赛A题飞行器激光测速中的频率估计问题解题全过程论文及程序
  • AWS 成本异常检测IAM策略
  • 解决Vue3+uni-app导航栏高亮自动同步方案
  • DeepSeek+SpringAI实现流式对话
  • 【Spark征服之路-2.1-安装部署Spark(一)】
  • VS代码生成工具ReSharper v2025.1——支持.NET 10和C# 14预览功能
  • 【Godot】如何导出 Release 版本的安卓项目
  • VSCode 工作区配置文件通用模板(CMake + Ninja + MinGW/GCC 编译器 的 C++ 或 Qt 项目)
  • js鼠标事件大全
  • Java八股文——Redis篇
  • 爬虫接口类型判断与表单需求识别全解析
  • Photoshop智能图层 vs 普通图层:核心差异与适用场景对比
  • Chainlink:连接 Web2 与 Web3 的去中心化桥梁
  • [Java 基础]面向对象-继承