为什么我不能在 OpenBSD 上使用 sudo?

为什么我不能在 OpenBSD 上使用 sudo?

我在 Windows 7 上的 VirtualBox 上运行 OpenBSD 5.7,以了解有关 Unix 的更多信息,但我无法使用sudo我的密码。我已经设置了一个名为 的用户,adminvpn但是当我尝试使用sudo它运行任何命令时,它告诉我的密码错误!

我已经尝试过我的 root 密码和用户密码,我 100% 确定它们是正确的,而且它们只是字母......我已经重新安装了 OpenBSD 3 次,这让我发疯。

当我尝试使用“adminvpn”的密码时,我得到

adminvpn 不在 sudoers 文件中。此事件将被报告。

我可以使用 root 身份并使用我的 root 密码登录。我几乎放弃与用户一起运行它。

答案1

错误消息会告诉您出了什么问题,即使它没有告诉您具体如何修复它。

adminvpn 不在 sudoers 文件中。

sudo允许您以管理员身份运行命令。为了能够使用 sudo,您需要成为管理员。默认情况下,帐户不会成为管理员。

运行命令visudo(当然,以 root 身份)并添加如下行:

adminvpn ALL=(ALL) ALL

保存文件并退出。您现在可以使用 root 身份运行任何命令sudo

请注意,这visudo将运行您最喜欢的编辑器,如环境变量所示VISUAL。如果您还没有配置它,您将获得 vi。如果您对 vi 感到不舒服,请安装另一位编辑(例如pkg_add nano)并添加一行export VISUAL=nano类似~/.profile;也在交互式 shell 中运行该命令,使其在当前会话中生效。

除非另有配置,否则sudo要求您输入自己的密码。不需要知道 root 密码,这就是sudo.输入密码的目的是确保在您离开键盘无人看管时不是其他人在输入密码。

顺便说一下,OpenBSD 并不是最适合初学者的 Unix。如果您想要更平缓的学习曲线,请尝试 Ubuntu。

答案2

OpenBSD 5.8或稍后附带多阿斯代替须藤(它仍然作为包提供),并且默认情况下它没有配置为让您运行东西。

创建文件/etc/doas.conf并添加到其中:

permit persist adminvpn as root
permit persist keepenv root as root

第一行让管理员VPN做为。秒一让做为。虽然它看起来很傻,但这是为了方便能够运行带有doas“前缀”的命令管理员VPN。如果没有它,如果您已经登录,则需要运行简单命令

如果你需要让管理员VPN以不同用户身份运行命令,您可以permit向文件添加其他行。

然后你可以这样做:

doas my-privileged-command

运行my-privileged-command

谢谢善行难陀以获得有用的评论。

相关内容