OpenBSD上的doas简介

背景

OpenBSD的替代品sudodoas,尽管它的工作方式与sudo不同,并且需要一些配置。它是“专用openbsd应用程序子执行程序”的首字母缩写。2015年发布的OpenBSD 5.8是第一个包含的doas。它是由Ted Unangst创建的,他对sudo的复杂性不满意并且对默认sudo配置有疑问。

doas命令在设计上很简单,并且不包含复杂的sysadmin基础结构所需的高级功能。对于大多数人来说,这已经足够了。如果需要sudo,请以pkg_add sudoroot用户身份安装。

安装

doas预安装OpenBSD 5.8版和更高版本。

组态

要授予车轮组中的用户访问权限doas,请在中添加以下内容/etc/doas.conf。您将需要root用户访问权限才能编辑此文件。

permit :wheel

这将授予Wheel组中的所有用户以任何用户身份执行命令的权限。

如果您希望用户一次输入密码,而不必暂时输入密码,请使用该persist选项。这是一个仅授予车轮组权限的示例:

permit persist :wheel

nopass如果您不希望他们不必输入密码,则可以改用该选项:

permit nopass :wheel

如果您希望用户“ mynewuser”具有管理员权限,则可以通过usermod -G wheel mynewuser以root用户身份运行将它们添加到wheel组,或者在您的行中添加一行,/etc/doas.conf使其看起来类似于以下内容:

permit nopass :wheel
permit nopass mynewuser

本示例假定您在使用时不需要用户输入密码doas。如果要设置它,以便仅允许mynewuser以www用户身份执行命令,则配置如下:

permit nopass :wheel
permit nopass mynewuser as www

如果希望mynewuser只能在doas中使用“ vim”命令,请使用以下配置:

permit nopass :wheel
permit nopass mynewuser as www cmd vim

还有其他配置选项,但是这里介绍的是最常用的。如果您想了解更多信息,可以使用该命令man doas.conf来阅读doas.conf(5)联机帮助页。

测试配置文件

要测试配置文件,请使用doas -C /etc/doas.conf命令。如果以后提供命令,例如doas -C /etc/doas.conf vim,它将告诉您是否有权运行命令而不尝试执行命令。

用法

用户可以echo "test"使用以下命令以root 用户身份运行命令: doas echo "test"

有权使用doas提升为用户“ www”的用户可以vim /var/www/http/index.html通过使用以下命令以用户“ www”的身份运行该命令: doas -u www vim index.html 这对于管理Web服务器但没有完全超级用户权限的用户很有用。

最佳实践

强烈建议您尽可能使用允许而不是拒绝。如果您拒绝用户使用特定的命令,则他们可能可以使用该命令的备用路径或名称(如果存在)逃脱。他们还可以将命令的可执行文件复制到其主目录,然后运行该可执行文件,从而破坏您的权限系统。

一般来说,使用doas比使用su更好,因为没有人必须共享root密码。如果每个人都使用自己的密码进行root访问,则不可能有人更改,忘记它并将每个人锁定在系统之外。日志保存在中/var/log/secure

技巧和窍门

您可以使用keepenv保留所有环境变量,如果您将编辑器设置为某项并且不想在成为另一个用户时更改它,这将很有用。这是mynewuser的示例:

permit nopass keepenv mynewuser

有时在某些情况下,覆盖每个环境变量可能会破坏事情,但是使用setenv,您可以选择要继承的变量。这是一个示例,它将使您的编辑器设置为您想要与git等一起使用的任何内容。

permit nopass setenv { VISUAL EDITOR } mynewuser

您还可以使用setenv删除环境变量(通过在每个要删除的变量前加一个破折号)或将它们设置为带有等号的特定内容。例如,如果您希望它删除环境变量VISUAL并将EDITOR设置为vim,则可以使用以下配置行:

permit nopass setenv { -VISUAL EDITOR=vim } mynewuser

如果doas已记住您的密码,则可以doas -L使它忘记密码。



Leave a Comment

使用OpenBSD在Vultr上配置BGP

使用OpenBSD在Vultr上配置BGP

Vultrs BGP功能使您可以拥有自己的IP空间并在我们的任何位置使用它,而OpenBSD实例则不需要其他软件!

如何在FreeBSD 12上使用Pkg软件包管理器

如何在FreeBSD 12上使用Pkg软件包管理器

简介FreeBSD是一种类似于Unix的开源操作系统,用于为现代服务器,台式机和嵌入式平台提供动力。Netflix,雅虎等巨人!

FreeBSD的Vultr块存储

FreeBSD的Vultr块存储

本文中的信息涉及修改磁盘,分区和文件系统,因此在执行任何示例之前,应先完全理解它们,因为它们会导致数据丢失或丢失。

如何在FreeBSD 11 FAMP VPS上安装Omeka Classic 2.4 CMS

如何在FreeBSD 11 FAMP VPS上安装Omeka Classic 2.4 CMS

使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在FreeBSD 12上安装osTicket

如何在FreeBSD 12上安装osTicket

使用其他系统?osTicket是一个开放源代码的客户支持票务系统。osTicket源代码公开托管在Github上。在本教程中

如何在FreeBSD 12上安装Dolibarr

如何在FreeBSD 12上安装Dolibarr

使用其他系统?Dolibarr是面向企业的开源企业资源计划(ERP)和客户关系管理(CRM)。多利巴尔

在OpenBSD 6上设置Ghost Professional发布平台

在OpenBSD 6上设置Ghost Professional发布平台

Ghost是与WordPress竞争的最新,最大的暴发户。主题开发既快速又容易学习,因为Ghost开发人员决定同时使用

如何在FreeBSD 12上安装Monica

如何在FreeBSD 12上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

如何在FreeBSD 11 FAMP VPS上安装Couch CMS 2.0

如何在FreeBSD 11 FAMP VPS上安装Couch CMS 2.0

使用其他系统?Couch CMS是一个简单,灵活,免费和开源的内容管理系统(CMS),可让Web设计人员进行设计

如何在FreeBSD 12上安装LimeSurvey CE

如何在FreeBSD 12上安装LimeSurvey CE

使用其他系统?LimeSurvey是一个用PHP编写的开源调查软件。LimeSurvey源代码托管在GitHub上。本指南将向您展示

如何在FreeBSD 12的Nginx中启用TLS 1.3

如何在FreeBSD 12的Nginx中启用TLS 1.3

使用其他系统?TLS 1.3是传输层安全性(TLS)协议的版本,该协议于2018年作为RFC 8446中的建议标准发布

如何在FreeBSD 12上安装MyBB

如何在FreeBSD 12上安装MyBB

使用其他系统?MyBB是一个免费,开放源代码,直观且可扩展的论坛程序。MyBB源代码托管在GitHub上。本指南将

使用Prosody和FreeBSD设置XMPP服务器

使用Prosody和FreeBSD设置XMPP服务器

尽管ejabberd非常普遍,但最近有一个竞争对手-Prosody。本教程将向您展示如何在FreeBS上设置Prosody

用Poudriere建立自己的Pkg存储库

用Poudriere建立自己的Pkg存储库

从9.2版开始,FreeBSD引入了一个新工具来替换旧的pkg _ *-命令-pkg,也称为pkgng。它非常类似于Debians apt o

如何在FreeBSD 11上安装Matomo Analytics

如何在FreeBSD 11上安装Matomo Analytics

使用其他系统?Matomo(以前称为Piwik)是一个开源分析平台,是Google Analytics(分析)的一种开放替代方案。Matomo源托管o

如何在FreeBSD 11 FAMP VPS上安装ProcessWire CMS 3.0

如何在FreeBSD 11 FAMP VPS上安装ProcessWire CMS 3.0

使用其他系统?ProcessWire CMS 3.0是一个简单,灵活,功能强大,免费和开源的内容管理系统(CMS)。ProcessWire CMS 3。

如何在FreeBSD 12的Apache中启用TLS 1.3

如何在FreeBSD 12的Apache中启用TLS 1.3

使用其他系统?TLS 1.3是传输层安全性(TLS)协议的版本,该协议于2018年作为RFC 8446中的建议标准发布

如何在FreeBSD 11 FAMP VPS上安装Redaxscript 3.2 CMS

如何在FreeBSD 11 FAMP VPS上安装Redaxscript 3.2 CMS

使用其他系统?Redaxscript 3.2 CMS是一款现代,超轻量级,免费和开源的内容管理系统(CMS),具有火箭fas

如何在FreeBSD 12上安装BookStack

如何在FreeBSD 12上安装BookStack

使用其他系统?简介BookStack是一个简单的,自托管的易于使用的平台,用于组织和存储信息。BookStack已满

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息