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

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

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

即代替:

$ dnf history
You don't have access to the history DB.

它会:

$ dnf history
[sudo] password for <username>:

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

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

答案1

你可以使用 python 脚本thefuck 可以在 github 上找到。该脚本旨在纠正您在一些用例中错误运行的最后一个命令,忘记使用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

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

sudo – 如果由于权限原因而失败,则将 sudo 添加到上一个命令;

如果这不能开箱即用,那么dnf创建自定义规则应该很简单。

答案2

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

alias dnf="sudo dnf"
  ⋮     ⋮     ⋮

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

相关内容