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 到本书。

最后更新于

这有帮助吗?