sudo-rs 项目使用与配置指南
sudo-rs A memory safe implementation of sudo and su. 项目地址: https://gitcode.com/gh_mirrors/su/sudo-rs
1. 项目目录结构及介绍
sudo-rs 是一个用 Rust 编写的安全性导向和内存安全的 sudo 和 su 替代实现。项目的目录结构如下:
sudo-rs/
├── .github/ # GitHub 工作流程和模板文件
├── bin/ # 二进制文件,包括 sudo-rs 和 su-rs
├── docs/ # 文档文件
├── proofs/ # 证明文件,用于验证代码的正确性
├── src/ # 源代码目录
├── test-framework/ # 测试框架
├── util/ # 实用工具脚本
├── .cirrus.yml # CI 配置文件
├── .gitignore # Git 忽略文件
├── CHANGELOG.md # 更改日志
├── CODE_OF_CONDUCT.md # 行为准则
├── CONTRIBUTING.md # 贡献指南
├── COPYRIGHT # 版权信息
├── Cargo.lock # Cargo 锁文件
├── Cargo.toml # Cargo 配置文件
├── LICENSE-APACHE # Apache 许可证文件
├── LICENSE-MIT # MIT 许可证文件
├── Makefile # Makefile 文件
├── README.md # 项目自述文件
├── SECURITY.md # 安全报告
├── build.rs # 构建脚本
├── clippy.toml # Clippy 配置文件
├── get-pam-variant.bash # 获取 PAM 变种的脚本
└── make-lcov-info.bash # 生成代码覆盖率信息的脚本
每个目录和文件的具体用途已在结构中简要说明。
2. 项目的启动文件介绍
sudo-rs 项目的启动主要是通过编译源代码来生成可执行文件。以下是一些关键文件:
Cargo.toml
:项目的配置文件,定义了项目的名称、版本、依赖等。src/lib.rs
:库的入口文件,定义了项目的核心功能。src/main.rs
:程序的入口点,通常用于启动项目。
编译项目:
cargo build --release
编译完成后,在 target/release/
目录下会生成 sudo
和 su
的可执行文件。
3. 项目的配置文件介绍
sudo-rs 使用配置文件来定义其行为,以下是一些重要的配置文件:
etc/sudoers
或etc/sudoers-rs
:sudo 的配置文件,定义了哪些用户可以执行哪些命令。etc/pam.d/sudo
和etc/pam.d/sudo-i
:PAM 配置文件,用于定义 sudo 的认证和会话管理。
配置 sudoers
文件的基本示例:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
%sudo ALL=(ALL:ALL) ALL
配置 PAM 文件的基本示例:
session required pam_limits.so
@include common-auth
@include common-account
@include common-session-noninteractive
确保正确配置这些文件,以便 sudo-rs 能够正确运行和验证用户权限。
sudo-rs A memory safe implementation of sudo and su. 项目地址: https://gitcode.com/gh_mirrors/su/sudo-rs