对于多数用 sudo 只是为了不用记 root 密码的个人电脑用户来说,和复杂的 sudo 相比,来自 OpenBSD 的 doas 更加小巧(sudo 编译后的体量是 doas 的五倍),配置更加简单,某种程度上也更加安全(很明显,代码越多,有漏洞的几率就越大,这也是 OpenBSD 的设计所依据的理论)。
http://www.tedunangst.com/flak/post/doas
其作者在因为 sudo 复杂而经常变化配置格式头疼之后设计出了 doas,现在已经被移植到 Linux。
配置格式很简单,要允许 wheel 组的用户用 doas 以 root 权限运行命令,只要用 root 用户在 /etc/doas.conf
写上:
permit :wheel
然后就可以像用 sudo 一样用它了。
另外,给 fish 用户的福利:doas 的补全,保存到 $HOME/.config/fish/completions/doas.fish
就能用。bash 的补全太难写。
#
# Completion for doas
#
complete -c doas -s s -d "Run a login shell"
complete -c doas -s n -d "No interactive mode - fail if would prompt password"
complete -c doas -s u -a "(__fish_complete_users)" -x -d "Run command as user"
complete -c doas -d "Command to run" -x -a "(__fish_complete_subcommand_root -u -g)"
4 个赞
这种工具,关键是要发行版的支持,否则很难推广呀,只能自己折腾玩玩。
应该没用,还是会自动重定向到 HTTPS
~ $ curl -I http://www.tedunangst.com/flak/post/doas
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 20 Apr 2018 04:34:35 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: https://www.tedunangst.com/flak/post/doas
Proxy-Connection: keep-alive
~ $
我用的是 Gentoo,官方源里面就提供,Arch 也有 doas,Slackware 应该也有,像这些没有默认安装 sudo 的 distro 都可以试试,毕竟不像 Glibc 或者 GCC 一堆软件离开就不能编译,没有什么软件必须要用到 sudo。这个也已经是 OpenBSD 的标配了。做移植的目的本身也是为了推广。
换个浏览器?比如 W3M 应该不会做 ssl 检查。用 Safari 也是可以选择继续访问的。
改天Ubuntu上试试。个人使用应该没问题,Server上还是算了,公司也不允许
嗯,在服务器上用的话 doas 功能还是有点缺乏。
大致搜了下 doas
, 这个帖子讨论得比较多。
https://www.reddit.com/r/linux/comments/4pzet8/openbsds_doas_utility_ported_to_linux/
这个人 问了安全方面的问题: doas 看起来不错,但是是谁在做porting的工作?是官方吗? 他举例说当初 LibreSSL 就是第三方做的porting, 结果引入了vulnerabilities
底下有人回复:
Completely unofficial, no involvement or review from upstream.
我也在github上搜了 doas, 不止一个,然而没有一个过50 star的。再看更新时间,星星多的repo, 都有一年多没维护了,有一个repo两天前还在更新,然而只有一星。
我比较关心的问题What does this program do that su or sudo doesn’t? 被 这个人 问了,得到的回答是doas 文档更清晰,doas速度更快等。
目前来看 doas 的 porting 还处于非常早期的阶段,而且是第三方志愿者在做,但是还没有形成一个核心repository,目前存在的repo, 哪个质量好,哪个会被长期维护,都不得而知。 那个 reddit post 推荐的是这个 这个repo , 然而,它上次更新是去年10月,并且连 README 都没,不像是个严肃的repo.
如果 doas 想替代 sudo, 还有很长的路要走。
1 个赞
LdBeth
2018 年4 月 25 日 00:46
14
# OpenDoas: a portable version of OpenBSD's `doas` command
[`doas`](https://en.wikipedia.org/wiki/Doas) is a minimal replacement for the venerable `sudo`. It was
initially [written by Ted Unangst](http://www.tedunangst.com/flak/post/doas)
of the OpenBSD project to provide 95% of the features of `sudo` with a
fraction of the codebase.
## Building and Installation Warnings
There are a few steps you have to carefully consider before building and installing
OpenDoas:
* There are fewer eyes on random `doas` ports, just because `sudo` had a vulnerability
does not mean random doas ports are more secure if they are not reviewed
or [PAM](https://en.wikipedia.org/wiki/Pluggable_authentication_module) is configured incorrectly.
* If you want to use PAM; You have to [configure PAM](#pam-configuration)
and failing to do so correctly might leave a big open door.
* Use the `configure` script.
* Use the default make target.
该文件已被截断。 显示原文
Gentoo 和 Void 的官方源以及 Arch AUR 用的都是这个。最近一次更新是 18 天。
你给的那个看 man page 是 OpenBSD 版本的,并不能给 Linux 用。
1 个赞
如果仅仅是嫌弃 sudo 配置复杂,也可以考虑使用另一个工具(不知道有没有)来做简化工作,就想 UFW 之于 iptables 一样,并不需要完全取代。
cireu
2021 年1 月 29 日 02:00
16
最近sudo爆出来的CVE太多了,有点理解doas(linuxport叫opendoas)的初衷了。
服务器端对这些漏洞比较敏感,但doas看样子也没有稳定到可以放心在服务器上跑;而桌面用户一般没必要担心sudo的漏洞,所以不需要换doas……这样看下来感觉比较鸡肋。