sudo:如何只允许一个命令使用一个参数?

sudo:如何只允许一个命令使用一个参数?

我想在我的 suoders 中添加一个条目,以允许一个用户运行一个仅带有一个非选项参数的命令。

# tail -1 /etc/sudoers
ALL     ALL = (:tool) NOPASSWD: /bin/echo [a-z]*
$ sudo -g tool /bin/echo abc def
abc def
$ sudo -g tool /bin/echo -abc def
[sudo] password for user: 

我可以使用 sudoers 语法来执行此操作吗?还是我需要创建一个辅助脚本?

答案1

据我所知,如果参数变化,您就不能将非命令参数传递给 sudo。

您可以指定如下内容:

users ALL=(ALL) NOPASSWD: /usr/bin/tail /some/file

这将允许用户拖尾某些文件但不允许拖尾其他文件。

如果您需要传递变量,我建议使用包装脚本。

以下是 rsync 包装器的一个例子:

https://sites.google.com/site/beingroot/articles/useful-scripts/wrapper-script-to-use-rsync-via-sudo

如果您在 Google 上搜索 sudo wrappers,您会发现更多示例。

如果用户不可信,请务必对所有路径进行硬编码,并对输入运行健全性检查。

相关内容