- sudo-rs 简介:这是一个用 Rust 编写的面向安全且内存安全的 sudo 和 su 实现。
- 项目状态:正在进一步开发,一些原始 sudo 的功能可能尚未实现或未计划。有需求可通过 issue 追踪器提出,遇到可用性问题或可疑漏洞也可报告。2023 年 8 月对 sudo-rs 0.2.0 版本进行了审计,当前版本已解决审计发现的问题,目前仅针对 FreeBSD 和基于 Linux 的操作系统。
安装 sudo-rs:
- 通过包管理器:不同 Linux 发行版有不同安装方式,如 Debian/Ubuntu 可使用 apt-get,Fedora 可使用 dnf,Arch Linux 可从发行版仓库安装。
- 使用预编译二进制文件:可通过预编译的 tarball 手动切换到 sudo-rs,建议安装在 /usr/local 目录,同时需手动创建 /etc/sudoers 或 /etc/sudoers-rs 文件等。
- 从源代码构建:需安装 Rust 1.70 及以上版本和 PAM 开发文件,在 Linux 系统上通过 cargo build 命令构建,构建后的二进制文件需设置 setuid 标志并由 root 用户拥有。
- 与原始 sudo 的差异:支持的功能比原始 sudo 少,一些配置项和命令行选项的处理方式不同,部分功能不支持,如防止 shell 转义等,sudoers 文件必须是有效的 UTF-8 等。若发现缺失功能可在 issue 追踪器中提出请求。
- 项目目标:当前目标是为所有常见的 sudo 使用案例构建一个即插即用的替代品,支持常见的命令行选项,部分原始 sudo 的功能不在范围内,su 实现基于 sudo 实现的构建块。
- 未来工作:初始目标是替代大多数基本的 sudo 使用案例,工作可能会超出该目标,还将研究其他配置 sudo 的方式并提取可用的 crate。
- 历史:由 Internet Security Research Group 作为 Prossimo 项目的一部分启动和资助。
- 致谢:是独立实现,包含了 Todd C. Miller 的 sudo 文档和 Rust 代码翻译,独立安全审计由 NLNet Foundation 资助,项目的存在离不开赞助商的支持,详情可查看[https://trifectatech.org/init...]。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。