Почему непривилегированный пользователь не может писать в / dev / tty0 - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь «подать» звуковой сигнал на динамик ПК, используя вызов IOCtl для устройства tty0 - код в основном такой:

 int fd = open("/dev/tty0", O_RDONLY);
 if (fd == -1 || argc != 3) return -1;
 return ioctl(fd, KDMKTONE, (atoi(argv[2])<<16)+(1193180/atoi(argv[1])));

Это нормально работает от пользователя root или с помощью sudo. Если я пытаюсь запустить от непривилегированного пользователя, это не работает.

strace изначально показывает, что проблема заключается в отсутствии разрешений на открытие устройства / dev / tty0 - однако, если я изменяю разрешения tty0на 666 он затем не работает на ioctl с ошибкой EPERM.

Я пытался поместить моего пользователя в группы tty и dialout без эффекта

есть идеи у кого-нибудь?

...