启用一组命令作为 sudo 运行,而不直接使用 sudo

启用一组命令作为 sudo 运行,而不直接使用 sudo

我最近开始研究 Salt Stack,并在 ubuntu 虚拟机上安装了主 Salt 代理。

要在登录时记录我的命令,我需要始终使用

sudo salt ....

有没有办法让 Salt 默认使用 sudo 运行?这意味着我根本不需要输入 sudo 密码或使用 sudo。

我是 Linux 新手,所以如果这看起来像一个愚蠢的问题,我深表歉意。提前致谢

答案1

您可以创建为您运行的 shell 函数或包装器脚本sudo。例如,将这样的脚本放入您的$PATH(也许在$HOME/bin)中:

#!/bin/sh
sudo /path/to/tools/salt "$@"

您可能想将实际的二进制文件放在某处外部用户的PATH,因此他们不会意外地被直接调用。然后只需进行必要的sudo配置即可允许用户运行/path/to/real/salt

如果你愿意,你也可以制作一个更通用的包装器,例如

#!/bin/sh
sudo "/path/to/tools/${0##*/}" "$@"

它采用程序的名称来调用它本身的名称,因此如果调用 aspepper/usr/local/bin/pepper它将运行sudo pepper,依此类推。然后您可以将各种名称符号链接到同一脚本。

要配置salt为无密码运行,您可以按照此处给出的说明进行操作:如何在没有密码提示的情况下以 root 身份运行特定程序?

相关内容