Назад | Перейти на главную страницу

файл 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

При запуске evrouter после изменения файла sudeurs я получаю это

/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

Вы можете сузить его, начав с очень широких разрешений 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 или аналогичных. Проверить журналы.

Я думаю, вы забыли добавить конец строки в свой файл sudoers: lucian ALL=(root) NOPASSWD: /usr/bin/evrouter -d /dev/input/by-id/usb-TopSeed_Tech_Corp._USB_IR_Combo_Device-* Собственно, можно только запустить команду /usr/bin/evrouter без параметра.

Я исправил это, установив suid в нужном приложении, даже если оно не очень безопасно, это мой локальный рабочий стол, поэтому я доверяю его безопасности :)