我有我通过sudo visudo添加的以下sudoconfiguration条目:
mark ALL = NOPASSWD: /usr/bin/lxc-ls*
我可以用我的用户很好的运行lxc-ls ,但是我不能追加任何参数而不要求我用sudo前缀。
$ whoami mark $ lxc-ls test-container $ lxc-ls --fancy lxc-ls: error: You must be root to access advanced container properties. Try running: sudo /usr/bin/lxc-ls
任何想法如何我可以编辑通过sudo visudo允许在命令后的任何参数?
我不想用sudo作为命令的前缀,因为我正在使用python库来执行命令,而且它对sudo前缀很有趣。
更新:
我已经尝试删除*但也没有工作:
$ sudo grep '\-ls' /etc/sudoers mark ALL = NOPASSWD: /usr/bin/lxc-ls $ lxc-ls test-container $ lxc-ls --fancy ... lxc-ls: error: You must be root to access advanced container properties. Try running: sudo /usr/bin/lxc-ls
这不是如何工作。 当使用sudo命令前缀时 ,sudoers文件只是将用户权限授予一个命令,而不是在没有sudo前缀的情况下运行它。 如果您自己的脚本无法执行,您需要编写一个包装脚本(如简单的bash文件)来执行该命令。
从sudoers手册 :
一个简单的文件名允许用户用他/她希望的任何参数运行该命令
所以,放下*。
你仍然需要在sudo前加上lxc-ls命令,或者写一个简单的包装来为你做。