Не получается использовать rfcomm под обычным пользователем в Ubuntu 20.04
Система Ubuntu 20.04. Устройство bluetooth сканер штрихкода, который эмулирует com порт. У меня не получается использовать rfcomm под обычным пользователем
rfcomm connect hci0 00:20:E0:7F:43:0A 1 Can't connect RFCOMM socket: Permission denied
Под sudo все прекрасно работает. Включил пользователя во все возможные группы, но эффекта нет. Что нужно сделать чтобы заработало?
Если пытаюсь подключится из Гнома Blueman-applet 2.1.2 (Подключить: Serial port) то тогда вообще подвисает подключение, т.е. пишет соединение и больше ничего, пока не перезагрузишь сервис bluetooth. При этом другие устройства, например телефон, прекрасно подключаются.
Ответы (2 шт):
для того, чтобы разрешить пользователю1 выполнять указанную команду от имени другого пользователя2 без ввода каких-либо паролей, можно добавить в файл с произвольным именем в каталоге /etc/sudoers.d такую примерно строку:
пользователь1 ALL = (пользователь2) NOPASSWD: команда
как правильно редактировать файлы /etc/sudoers.d/*, написано в другом моём ответе.
для вашего случая строка будет выглядеть так:
имя_пользователя ALL = (root) NOPASSWD: /usr/bin/rfcomm параметры
полный путь к исполняемому файлу обязателен. если не указывать здесь конкретные параметры, то пользователь сможет передавать произвольный набор параметров.
теперь указанный пользователь сможет выполнить:
$ sudo /usr/bin/rfcomm параметры
без запроса пароля.
Можно тогда сделать ещё проще:
chmod 6755 /usr/bin/rfcomm или chmod ug+s+t /usr/bin/rfcomm
Это позволяет запускать файл от имени владельца, но конечно безопасность в этом случае не очень.