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

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.xdnf.cn/news/12232.html

相关文章:

  • 区块链技术:原理、应用与发展趋势
  • CD43.vector模拟实现(2)
  • 守护生命律动:进行性核上性麻痹的专业健康护理指南
  • Docker快速部署AnythingLLM全攻略
  • CSS选择子元素
  • mysql数据库的导入导出专题
  • SpringBoot parent依赖高版本覆盖低版本问题
  • 《小明的一站式套餐服务平台》
  • Go内存模型基础:理解内存分配机制
  • 从OCR到Document Parsing,AI时代的非结构化数据处理发生了什么改变?
  • OpenProject:一款功能全面的开源项目管理软件
  • 2.0 阅读方法论与知识总结
  • grafana 批量视图备份及恢复(含数据源)
  • 【拓扑】1639.拓扑排序
  • python版若依框架开发:python版若依部署
  • 【系统架构设计师】绪论-系统架构概述
  • Cisco Packet Tracer软件如何修改文件存储位置
  • 【计算机组成原理 第5版】白、戴编著 第三章多层次的存储器 题型总结2 cache部分
  • Java异步编程难题拆解技术
  • LVS、NGINX、HAPROXY的调度算法
  • Spring Cloud 深度解析:构建高可用微服务架构实践指南
  • 文本内容变化引起布局尺寸变化 导致的 UI 适配问题
  • 工业软件低代码开发平台技术架构研究
  • SQL语法
  • ROS 2 环境下使用 Astra Pro 深度相机实现目标距离检测及远程可视化全流程总结
  • 制作一款打飞机游戏65:时间表修正
  • AirSim/Cosys-AirSim 游戏开发(一)XBox 手柄 Windows + python 连接与读取
  • 估计二维结构的数量
  • 尝试使用gocryptfs实现大模型加密部署
  • AI书签管理工具开发全记录(十):命令行中结合ai高效添加书签