gpt4 book ai didi

bash - bash 脚本中单个命令的 sudo

转载 作者:行者123 更新时间:2023-11-29 08:55:20 24 4
gpt4 key购买 nike

这可能是个愚蠢的问题。

我有一个脚本,我想在 Mac OS X 和我使用的 Linux 机器之间移植。在 OS X 中,脚本中的命令需要 sudo,而在 Linux 机器上则不需要。

长话短说,如何使用 sudo 在脚本中运行一个命令,同时删除脚本其余部分的提升权限?

我试过用

su -

su -c

但他们似乎都出错了。 (他们说“对不起”并继续前进,我想是因为它试图以 root 身份运行,而 root 没有密码)。

我知道必须有一种愚蠢而简单的方法来做到这一点,每个人都有什么建议?

最佳答案

您可以通过执行以下操作“撤销”sudo 权限(实际上:提前关闭 sudo 时间窗口):

sudo -k

此外,您可以将 sudo 配置为仅允许对某些命令提升权限,甚至可以为特定命令模拟非根用户。请参见 man sudoers示例部分非常清楚地表明,sudo 的可配置性几乎没有限制(角色、主机、命令、允许转义、允许 sudo 目标用户、允许的异常(exception)情况、无密码授权等) ).

希望在您的上下文中有一个有趣的例子:

The user fred can run commands as any user in the DB Runas_Alias (oracle or sybase) without giving a password.

   fred           ALL = (DB) NOPASSWD: ALL

如果你不能/真的不想干预/etc/sudoers(visudo!),那么我建议使用类似的东西

{
trap "sudo -k" EXIT INT QUIT TERM
sudo ls # whatever
}

关于bash - bash 脚本中单个命令的 sudo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5919108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com