运行 Debian 9,我希望普通用户能够alsactl monitor
作为重新绘制显示当前卷的状态栏的触发器来运行 - 而不必诉诸轮询。然而,换句话说,alsactl
住在,需要超级用户权限。/usr/sbin/
让普通用户使用此命令的最佳方法是什么?
界定最好的: 之间的良好折衷简单的和限制性的。换句话说,使用 Debian 附带的工具或存储库中提供的工具,以及不必在系统中进行深度更改是一个优点,因为尽可能限制用户的额外权限。
笔记:我发现搜索这个问题非常困难,但我几乎可以肯定以前已经问过非常类似的问题。如果您能给我指出一个合适的副本,我将非常乐意删除它。
答案1
应该可以/usr/sbin
使用命令的绝对路径来执行命令。
/usr/sbin/alsactl
您收到消息“alsactl:未找到命令”,因为/usr/sbin
它不在PATH
您的非超级用户的目录中。
答案2
您可以在 /etc/sudoers 文件中使用 sudoers 规则
joe ALL=(ALL) NOPASSWD: /full/path/to/command args
在你的情况下添加一行,例如:
user ALL=(ALL) NOPASSWD: /usr/bin/alsactl monitor
小心授予太多权限......但我认为 alsactl 不是需要 sudo 权限的命令