В программе (драйвер нек. карты) выполняется команда:
int mem_fd = open ("/dev/mem", O_RDWR);
Программу надо запустить от пользователя. Делаю доступ 04755, и получаю errno = 13 ( Permission denied ). Можно ли это как-то обойти?
Хочу заметить, что если владелец не root и доступ 04755, то errno = 13 выдается даже если программа запускается из-под root'а.
open ("/dev/mem", O_RDWR) не из-под root
Модератор: Модераторы разделов
-
helicopter
- Сообщения: 324
- Статус: Комсомолец
- ОС: Gentoo Linux
Re: open ("/dev/mem", O_RDWR) не из-под root
(П-нер @ Aug 29 2006, в 16:21) писал(а):Хочу заметить, что если владелец не root и доступ 04755, то errno = 13 выдается даже если программа запускается из-под root'а.
Дык если стоит суид-бит, то при запуске выставляется идентификатор владельца файла
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
-
d_n_k
- Сообщения: 636
- ОС: Gentoo GNU/Linux
Re: open ("/dev/mem", O_RDWR) не из-под root
драйвер? это ж модуль ядра как он не от root'а может работать?
или ты его в userspace поместил?
или ты его в userspace поместил?
все сказанное есть имхо...
-
Zeus
- Сообщения: 694
-
agbr
- Сообщения: 486
- ОС: openSUSE 10.2
Re: open ("/dev/mem", O_RDWR) не из-под root
у процесса есть так назывемый uid, и euid ( эфективный uid )
jabber: agbr@jabber.ru
против проприетарного ПО в GNU/Linux
против проприетарного ПО в GNU/Linux