如何允许普通用户运行超级用户命令(来自 /usr/sbin)

如何允许普通用户运行超级用户命令(来自 /usr/sbin)

运行 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 权限的命令

相关内容