我有以下通过以下方式添加的 sudo 配置条目sudo visudo
:
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
知道如何编辑 viasudo 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
答案1
答案2
这不是sudo
工作原理。 sudoers 文件只是授予用户执行命令的权限当以 sudo 命令为前缀时,因此您无法在不添加 sudo 前缀的情况下运行它。如果您自己的脚本无法执行该命令,则需要编写包装器脚本(如简单的 bash 文件)来执行该命令。