如何在命令中隐藏 sudo?

如何在命令中隐藏 sudo?

在 Linux Mint 20+ 上,我不必输入sudo apt upgrade.我只输入apt upgrade,提示符要求输入 sudo 密码,并且该命令以提升的权限执行。

这是如何实现的?

答案1

你说有这样的东西/usr/local/bin/apt

command = ["sudo"] + command
subprocess.Popen(command, stdout=subprocess.PIPE)

看起来像Python 脚本它构建了一个命令行并sudo在开始时进行堆栈,以节省您的麻烦。

看起来同一个脚本也服务于其他一些命令,例如这里

现在,如果您愿意,您可以检查其中的ls -ld /usr/local/bin/apt内容,看看它是否是实际脚本等的符号链接。上面和链接文章中的代码看起来像是使用调用脚本的名称来查找实际运行的程序。

为什么所有发行版上的情况不一样?

因为其他人没有费心提供这样的包装,可能是因为他们认为这不值得。虽然在apt没有特权的情况下安装软件包确实有些困难,但它也有其他功能,例如apt search不需要特权的 。一般来说,不可能列出所有需要它们的程序。根据具体情况,可能需要rm也可能不需要它们。

然后你就会遇到这样的情况:你需要使用sudo某些命令,但不需要使用其他命令,这很令人困惑。 (可能有些人还认为应该强制用户sudo每次都键入,以便他们在使用提升的权限时保持警惕。)

相关内容