nixp.ru v3.0

20 ноября 2017,
понедельник,
04:49:57 MSK

DevOps с компанией «Флант»
juvf написал 3 ноября в 21:36 (815 просмотров) Ведет себя неопределенно; открыл 1 тему в форуме, оставил 1 комментарий на сайте.

запускаю программу, получаю в ответ
Код
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);

Дмитрий Шурупов

По-нормальному никак. Потенциально можно что-то намудрить с CAP_SYS_RAWIO capability (обсуждение см. тут), но всё это плохо с точки зрения безопасности.

juvf

Спасибо. Я уже понял, то доступ под юзером до /dev/mem — это плохо. Использую чужой говнокод, там сделано через /dev/mem, перепишу этот кусок кода с использованием тру библиотеки.