我想在我的 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:
Run Code Online (Sandbox Code Playgroud)
我可以使用 sudoers sytnax 来做到这一点吗?还是我需要创建一个帮助脚本?
jef*_*aid 10
据我所知,如果该参数发生变化,您不能将非命令参数传递给 sudo。
您可以指定如下内容:
users ALL=(ALL) NOPASSWD: /usr/bin/tail /some/file
Run Code Online (Sandbox Code Playgroud)
这将允许用户拖尾某个文件而不是其他文件。
如果你需要传递一个变量,我推荐一个包装脚本。
这是 rsync 包装器的示例:
https://sites.google.com/site/beingroot/articles/useful-scripts/wrapper-script-to-use-rsync-via-sudo
如果您在 google 上搜索 sudo 包装器,您可以找到更多示例。
如果用户不可信,请确保对所有路径进行硬编码并对输入运行健全性检查。