我可以配置 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 权限,并且内核(或其他任何地方)可能有某种方式在返回用户是否有之前保持在阻塞输入阶段(对于密码)使用权。
您可以使用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因为创建自定义规则应该很简单。
一个简单的权宜之计是确定您运行的(总是)需要特权的命令,并为它们取别名:
alias dnf="sudo dnf"
? ? ?
Run Code Online (Sandbox Code Playgroud)
我建议不要对您使用的每个命令都这样做;特别是没有那些可能伤害(如cp,mv和rm)。事实上,我个人不会为这样的事情做ls;如果我不是以 root 身份运行,我认为ls -l /root
应该失败是正确和正确的。可以为 执行此操作find,但请记住,您运行的任何程序都-exec
继承了find正在运行的超级用户权限。