非特权用户为什么无法写入/ dev / tty0

时间:2019-10-26 17:22:07

标签: ioctl

我正在尝试通过对tty0设备的IOCtl调用来“嘟嘟” PC扬声器-代码基本上是这样的:

 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])));

这可以从根或使用sudo正常运行。如果我尝试从非特权用户运行,将无法正常工作。

strace最初显示出问题是缺少打开/ dev / tty0设备的权限-但是,如果我将tty0权限更改为666,则它将在ioctl上失败,并显示EPERM错误。

我尝试将用户置于tty和Dialout组中,但没有任何作用

任何想法吗?

0 个答案:

没有答案