Запись в файл «application / octet-stream» в linux - PullRequest
0 голосов
/ 17 марта 2020

Я работаю над приложением, которое должно блокировать некоторые USB-устройства.

Я нашел способ, как можно сделать блокировку. Проблема, как написано здесь , что мне нужно записать некоторую строку в файл /sys/bus/usb/drivers_probe. Упомянутый файл application/octet-stream, и я не могу найти способ прочитать или записать этот файл.

Я пробовал vim, echo, hexdump с sudo или как root , но каждый раз, когда я получаю «Отказано в доступе» или «Нет такого устройства» сообщение. Я не пробовал это в C / C ++, который используется моим приложением, но я думаю, что это даст тот же результат.

Может кто-нибудь помочь мне понять, как разработчики ядра имели в виду запись в этот файл?

1 Ответ

3 голосов
/ 17 марта 2020

Если вы получаете «Отказано в доступе», это означает, что вы не открываете файл с правами доступа root:

$ sudo echo 4-1 > /sys/bus/usb/drivers_probe
bash: /sys/bus/usb/drivers_probe: Permission denied

$ echo 4-1 | sudo tee /sys/bus/usb/drivers_probe > /dev/null
(no error)

Если вы получаете «Нет такого устройства», это означает, что вы пишете неправильно строка:

$ echo 'foobar' | sudo tee /sys/bus/usb/drivers_probe > /dev/null
tee: /sys/bus/usb/drivers_probe: No such device

$ echo '3-1.3.1:1.3' | sudo tee /sys/bus/usb/drivers_probe > /dev/null
(no error)
...