sudoers 文件,允许以 root 身份运行文件

sudoers 文件,允许以 root 身份运行文件

我需要能够/usr/bin/evrouter以 root 身份运行该命令,而无需输入密码。

http://wiki.xbmc.org/index.php?title=HOW-TO:Gyration_USB_remote_in_Ubuntu_for_XBMC_using_evrouter#Set_Up_Sudo对于以下示例。

我的sudoeurs文件如下所示:

lucian@lucian-P35-DS3:~$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
lucian  ALL=(root) NOPASSWD: /usr/bin/evrouter

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d

在更改 sudeurs 文件后运行 evrouter 时,我得到了这个

/usr/bin/evrouter -d /dev/input/by-id/usb-TopSeed_Tech_Corp._USB_IR_Combo_Device-*                                                                                                
/usr/bin/evrouter: error opening device /dev/input/by-id/usb-TopSeed_Tech_Corp._USB_IR_Combo_Device-event-ir: Permission denied

编辑:输出应该是:

lucian@lucian-P35-DS3:~$ sudo /usr/bin/evrouter -d /dev/input/by-id/usb-TopSeed_Tech_Corp._USB_IR_Combo_Device-*
[sudo] password for lucian: 
device  0: /dev/input/by-id/usb-TopSeed_Tech_Corp._USB_IR_Combo_Device-event-ir: TopSeed Tech Corp. USB IR Combo Device 
device  1: /dev/input/by-id/usb-TopSeed_Tech_Corp._USB_IR_Combo_Device-if01-event-ir: TopSeed Tech Corp. USB IR Combo Device 
/usr/bin/evrouter: error querying device /dev/input/by-id/usb-TopSeed_Tech_Corp._USB_IR_Combo_Device-if01-ir: Inappropriate ioctl for device
/usr/bin/evrouter: error querying device /dev/input/by-id/usb-TopSeed_Tech_Corp._USB_IR_Combo_Device-ir: Inappropriate ioctl for device
Display name: :0

答案1

你可以通过从非常宽泛的 sudoers 权限开始,然后逐步缩小范围来缩小范围。首先在你的 中尝试此操作/etc/sudoers

lucian ALL = NOPASSWD: ALL

如果可行,请尝试使其更具限制性:

lucian ALL = NOPASSWD: /usr/bin/evrouter

进而

lucian ALL = (root) NOPASSWD: /usr/bin/evrouter

还可以尝试使用 将 lucian 放入 sudo 组中vigr。这应该可行,通过 sudoers 文件中的最后一个规范(尽管权限会比您想要的更广泛)。

另外,sudo 应该记录到 /var/log/messages 或 /var/log/sudo.log 或类似文件。检查日志。

答案2

我认为您忘记在 sudoers 文件中添加行尾: lucian ALL=(root) NOPASSWD: /usr/bin/evrouter -d /dev/input/by-id/usb-TopSeed_Tech_Corp._USB_IR_Combo_Device-* 实际上,您只能启动不带参数的命令/usr/bin/evrouter

答案3

我已经通过设置suid所需的应用程序解决了这个问题,即使它不是很安全,但它是我的本地桌面,所以我相信它是安全的:)

相关内容