запускаю программу, получаю в ответ
Код
Failed to open /dev/mem, try checking permissions.
под рутом программа нормально запускается. Нужно запустить под юзером. Смотрю владельцев
Код
pi@raspberrypi:~/$ ls -l /dev/mem
crw-rw—- 1 root kmem 1, 1 Nov 2 11:29 /dev/mem
добавил пользователя в группу kmem
Код
pi@raspberrypi:~/$id pi
uid=1000(pi) gid=1000(pi)roups=1000(pi),4(adm),15(kmem),20(dialout), 24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),101(input),108(netdev),999(spi),998(i2c),997(gpio)
всё равно под юзером «Failed to open /dev/mem». Есть возможность не из под рута открыть на чтение/запись /dev/mem?
ps программа открывает /dev/mem сишным кодом
open(«/dev/mem», O_RDWR | O_SYNC);
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
По-нормальному никак. Потенциально можно что-то намудрить с CAP_SYS_RAWIO capability (обсуждение см. тут), но всё это плохо с точки зрения безопасности.
Спасибо. Я уже понял, то доступ под юзером до /dev/mem — это плохо. Использую чужой говнокод, там сделано через /dev/mem, перепишу этот кусок кода с использованием тру библиотеки.