4.9 sudo 和 doas

权限示意图

doas

对于大部分人来说,只需要 sudo su 这一条命令,其他内容都是多余的。在使用时将 sudo 直接替换为 doas 即可。

OpenBSD 项目认为 sudo 软件配置复杂、代码质量较差、漏洞较多,故自行开发了 doas。因此,FreeBSD 也可以使用。

安装 doas

  • 使用 pkg 安装:

  • 或者使用 Ports 安装:

查看 doas 安装后的信息

配置 doas

由上可知,示例配置文件位于 /usr/local/etc/doas.conf.sample

而我们需要将配置文件放在 /usr/local/etc/doas.conf,该文件默认不存在,需要自行创建。

  • /usr/local/etc/doas.conf.sample 内容如下,相比 sudo 而言,非常简单易懂:

让我们简单注释一下:

对于一般用户,只需要创建文件 /usr/local/etc/doas.conf,并写入

即可满足日常需求(你的用户须加入 wheel 组)。

sudo

安装 sudo

  • 使用 pkg 安装:

  • 或者使用 Ports 安装:

sudo 免密码配置

/usr/local/etc/sudoers.d/ 目录下新建两个文件:username(需要免密码的用户名)和 wheel

  • 文件 username 内容如下:

  • 文件 wheel 内容如下:

多加一行,使用 sudo 时不需要输入密码:

故障排除与未竟事宜

  • xxx Is Not in the Sudoers File. This Incident Will Be Reported

需要在 sudoers 中加入一行配置来解决该问题:

编辑 /usr/local/etc/sudoers,找到 root ALL=(ALL:ALL) ALL 这一行,通常位于第 94 行左右。在这行下面加一句:

然后保存退出即可。

sudo-rs

sudo-rs 是一款采用 Rust 编写的、以安全为导向并具备内存安全性的 sudosu 的实现。

与 sudo 不共存的安装方案

即安装 sudo-rs 前必须先卸载 sudo,在该安装方式下二者不共存。

  • 使用 pkg 安装:

  • 或者使用 Ports 安装:

提供了命令 sudovisudosudoedit

与 sudo 共存的安装方案

即系统中同时存在 sudo 与 sudo-rs。

  • 使用 pkg 安装:

  • 还可以通过 Ports 来安装:

提供了命令 sudo-rsvisudo-rssudoedit-rs

配置 sudo-rs

配置文件位于:/usr/local/etc/sudoers

测试

附录:通过 mac_do 提权

参考文献:

此部分内容较为简单,读者可自行了解,或直接向本书提交 PR。

最后更新于

这有帮助吗?