提示输入 sudo 密码而不是给出访问错误

use*_*689 4 fedora root sudo

我可以配置 Fedora 22 以便需要 root 权限的任何东西都要求输入密码,而不是给出错误,并需要我使用 sudo 重新运行吗?我什至不介意每次都输入我的密码,没有几分钟(或其他什么)计时器来记住密码。

即而不是:

$ dnf history
You don't have access to the history DB.
Run Code Online (Sandbox Code Playgroud)

它会:

$ dnf history
[sudo] password for <username>:
Run Code Online (Sandbox Code Playgroud)

我认为一些 gui 应用程序可以做到这一点,例如安装后的 gui yum 前端。

我想不是......这取决于每个应用程序来实现这一点。但是,我希望它可能是应用程序说需要 root 权限,并且内核(或其他任何地方)可能有某种方式在返回用户是否有之前保持在阻塞输入阶段(对于密码)使用权。

cas*_*sey 6

您可以使用thefuck github 上提供的 python 脚本。此脚本旨在纠正您在几个用例中错误运行的最后一个命令,忘记使用sudo就是其中之一。

从他们的例子:

? apt-get install vim
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

? fuck
sudo apt-get install vim
[sudo] password for nvbn:
Reading package lists... Done
Run Code Online (Sandbox Code Playgroud)

此行为来自您可以启用的 sudo 规则:

sudo - 如果由于权限而失败,则在上一个命令之前添加 sudo;

如果这不是开箱即用的,dnf因为创建自定义规则应该很简单。


G-M*_*ca' 5

一个简单的权宜之计是确定您运行的(总是)需要特权的命令,并为它们取别名:

alias dnf="sudo dnf"
  ?     ?     ?
Run Code Online (Sandbox Code Playgroud)

我建议不要对您使用的每个命令都这样做;特别是没有那些可能伤害(如cpmvrm)。事实上,我个人不会为这样的事情做ls;如果我不是以 root 身份运行,我认为ls -l /root 应该失败是正确和正确的。可以为 执行此操作find,但请记住,您运行的任何程序都-exec 继承了find正在运行的超级用户权限。