![使程序可由普通用户执行](https://linux22.com/image/44509/%E4%BD%BF%E7%A8%8B%E5%BA%8F%E5%8F%AF%E7%94%B1%E6%99%AE%E9%80%9A%E7%94%A8%E6%88%B7%E6%89%A7%E8%A1%8C.png)
我已经hddtemp
在我的 Arch Linux 上安装了,但它需要以 root 权限运行。我想以普通用户身份执行它而不使用sudo
.我怎样才能做到这一点?
答案1
可以使用该/etc/sudoers
机制为组中的用户分配运行可执行文件的权限。例如,要允许组中的所有用户以root 身份users
运行并添加以下权限:hddtemp
root
visudo
%users ALL = (root) NOPASSWD: /path/to/hddtemp
答案2
您可以使程序成为SUID。这是不是这是一种非常安全的做事方式,因为 SUID 程序通常会无意中打开提升权限的方法,特别是当该程序不打算以 SUID 方式运行时。除非 sudo 解决方案由于某种原因不可接受(它被硬编码到您无法更改的脚本/程序中),否则您应该这样做。如有必要,您甚至可以编写一个脚本来隐藏正在使用 sudo 的事实。