我想让我的普通用户运行/usr/bin/brightnessctl
来打开/关闭我的笔记本电脑上的键盘背光,所以我这样做了
visudo -f /etc/sudoers.d/grove
(grove
是我的用户名,但这里重要的是该文件包含在/etc/sudoers
)
该文件已经包含这些行:
grove ALL=(ALL) NOPASSWD: /usr/bin/light -A 5
grove ALL=(ALL) NOPASSWD: /usr/bin/light -U 5
所以我只是模仿那些并尝试添加
grove ALL=(ALL) NOPASSWD: /usr/bin/brightnessctl -d tpacpi::kbd_backlight s 2
grove ALL=(ALL) NOPASSWD: /usr/bin/brightnessctl -d tpacpi::kbd_backlight s 0
但 makevisudo
报告语法错误:
/etc/sudoers.d/grove:3:59: syntaksfejl
grove ALL=(ALL) NOPASSWD: /usr/bin/brightnessctl -d tpacpi::kbd_backlight s 2
^~
/etc/sudoers.d/grove:4:59: syntaksfejl
grove ALL=(ALL) NOPASSWD: /usr/bin/brightnessctl -d tpacpi::kbd_backlight s 0
^~
(syntaksfejl
是丹麦语syntax error
,我已经LANG
设置了所以一切都说丹麦语,我认为没有理由重做它来LANG=C
为这么小的文本提供英语错误)
这里有什么问题吗?是冒号(并且指示符错误,这可能是由 后面的 TAB 引起的grove
),如果是,我该如何允许该命令?我应该允许/usr/bin/brightnessctl
并接受我可以控制更多的事情吗?
(如果重要的话,我正在使用 Debian 12)
答案1
@steeldriver 在评论中指出sudoers 手册的“别名”部分说冒号必须用 a 转义\
,并且有效。
我愚蠢地没有费心去阅读手册,而是徒劳地尝试引用我的方法,因为这通常会达到相同的效果,但正如所说的那样,它\
是有效的。