LINUX.ORG.RU

Вот бы доступ ко всяким /dev/USBtty0 сразу юзверю выдавался

 , ,


1

1

Вот в мастдае, подключаешь ты ардуинку, кастуешь Serial.begin(9600), заходишь в Монитор порта и можешь наблюдать тонны(или совсем немного) выхлопа. А у меня на Арче приходится грузить Moserial из-под рута, чтоб просто порт послушать(всяко быстрее, чем выдавать себе права на конкретный порт).

Вот бы можно обычный юзверь мог получить права к устройствам с последовательным портом, ко всем или только к конкретным. Давать права на весь /dev - опасно, как и на /dev/usb. Внимание, вопрос:

Опасно это где - на десктопе иль на серваке? Если у тебя десктоп, который нахер никому(кроме тебя) не нужен, не будет ли полезным сделать скрипт, который будет давать права доступа текущему юзеру на использование USB-устройств(до перезагрузки)?


Об чем вопрос то? Сделай файлик с udev-правилом, сделай пакет для арча с ним и положи в aur. Там где тебе надо, просто ставь этот пакет

cobold ★★★★★
()

Так возьми готовые\напиши udev-правила. Можно даже по серийникам устройств нужные имена\номера портов автоматом присваивать. Ну и да, пользователя в группу добавить.

sehellion ★★★★★
()

Создаёшь /etc/udev/rules.d/80-user.rules и туда накидываешь устройств, номера получаешь из системного лога или lsusb. Я так делаю.

Например, для устройств управляемых через libusb:

# CH341A
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="5512", MODE="0666", TAG+="uaccess"
# PL2303
SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE="0666", TAG+="uaccess"

Для Android телефонов, для подключения через adb:

# Android
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee8", MODE="0666", GROUP="plugdev"

А вообще для Арча всё расписано (у меня не Арч).

jpegqs
()
Ответ на: комментарий от u5er

Тут скорей вопрос - почему в стандартной поставке udev есть куча мусора, а таких простых правил нет. По-мне все USB устройства должны быть доступны пользователю по умолчанию, по крайней мере в десктопных конфигурациях ОС. И только некоторые вроде USB-дисков можно запрещать (т.к. к ним доступ идёт через драйверы).

Я, к примеру, воткнул в компьютер своё устройство, с которым общаюсь через браузер. В любой ОС кроме линукса это заработает из коробки. В линуксе - не заработает, нужно устанавливать udev-правила, что теряет всякий смысл для веб-приложений, которые должны работать без установки.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 4)
Ответ на: комментарий от vbr

В любой ОС кроме линукса это заработает из коробки. В линуксе - не заработает, нужно устанавливать udev-правила, что теряет всякий смысл для веб-приложений, которые должны работать без установки.

Возможно, для этого нужен дистр, который заточен для работу с веб-приложениями. Такой, как хромоось.

u5er ★★★
()
Ответ на: комментарий от u5er

Дело не в веб-приложениях, дело в принципиальном подходе. И Windows, и macOS, и Android, которые несравненно более защищены на всех уровнях, разрешают доступ к USB-устройствам. Linux с его моделью безопасности из 70-х - зачем-то защищает. Даже смешно, ей-богу.

vbr ★★★★★
()
Ответ на: комментарий от vbr

Не согласен. В винде тоже есть права, просто там при создании пользователя они выставляются для типовых десктопных задач. В линуксе же пользователя ты добавляешь в группы сам. Возможно, в десктопных линуксах стоило бы поступать таким же образом. Почему этого не делается - это уже вопрос к дистрописателям.

u5er ★★★
()
Ответ на: комментарий от jpegqs

Твои примеры не будут работать.

For any rule adding the uaccess tag to be effective, the name of the file it is defined in has to lexically precede /usr/lib/udev/rules.d/73-seat-late.rules.

Переименуй в 72-user.rules.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от jpegqs

А я бы не писал, если бы сам не наткнулся на эту проблему. Тег uaccess обрабатывается в 73-м конфиге и преобразуется в ACL. Всё, что определено после него - на ACL не повлияет. По крайней мере в арче так. Если у тебя не так, значит у тебя кривой дистрибутив с васянскими udev конфигами, там что угодно может быть, но в апстриме как в арче.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 3)
Ответ на: комментарий от vbr

Твои примеры не будут работать.
Переименуй в 72-user.rules.

Только в системах с безальтернативно установленным systemd (здесь пользователи Gentoo, Void, Slackware, Devuan и Alpine смотрят с ехидным прищуром).

Если в /etc/udev/rules.d/ не наблюдается правил от systemd, можно не беспокоиться по этому поводу.

Quote
()
Ответ на: комментарий от vbr

Тут скорей вопрос - почему в стандартной поставке udev есть куча мусора, а таких простых правил нет.

Потому, что все пользователя в нужную группу добавляют.

AS ★★★★★
()