我想添加一个条目到我的suoders,允许一个用户运行一个命令,只有一个非选项参数。
# tail -1 /etc/sudoers ALL ALL = (:tool) NOPASSWD: /bin/echo [az]* $ sudo -g tool /bin/echo abc def abc def $ sudo -g tool /bin/echo -abc def [sudo] password for user:
我可以使用sudoers sytnax来做到吗? 或者我需要创build一个帮手脚本?
据我所知,如果参数变化,你不能将非命令parameter passing给sudo。
你可以指定这样的东西:
users ALL=(ALL) NOPASSWD: /usr/bin/tail /some/file
这将允许用户尾部分文件,而不是其他文件。
如果你需要传递一个variables,我推荐一个包装脚本。
这是一个rsync包装的例子:
https://sites.google.com/site/beingroot/articles/useful-scripts/wrapper-script-to-use-rsync-via-sudo
如果你search谷歌sudo包装,你可以find更多的例子。
如果用户不能被信任,一定要硬编码所有path,并对input进行完整性检查。