gpt4 book ai didi

linux - 有没有办法将文件描述符传递给另一个进程?

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:57 30 4
gpt4 key购买 nike

这是我的麻烦。

事实:

1. There is a device placed in /dev/xxx. 
All files under /dev/ should have permission of 700
(root permission only accessible. No ownership change and group setting)

2. Not-root user application 'A' needs to open /dev/xxx and
perform ioctl on the FD.

我想到了几个选择:

option 1) Write a stub application 'X' that can run with root. 
Open /dev/xxx in 'X' and perform IPC between A and X.

由于 IPC 开销,这个选项实际上并不是一个好的选项,因为 A 需要非常频繁地执行 ioctl。

option 2) Change the location of /dev/xxx into some other place like
/data/xxx where /data/ is accessible by 'A'

由于某种原因,如果我尝试使用有效权限打开此/data/xxx,打开函数将返回权限被拒绝错误。我不明白为什么会发生这种情况。内核是否有一些额外的保护来打开/dev 中其他位置的设备文件?

option 3) Write a stub application 'X' that can run with root.
Open /dev/xxx in 'X' and pass the FD to 'A'.

我不确定这是否是一个合理的选择。希望您能对此选项提出任何意见。

最佳答案

既然您说过可以以 root 身份运行进程,那么要做的就是打开文件,然后调用 setuid 更改为非特权用户并执行您需要执行的所有操作。我已经在 BSD 下完成了此操作,但不能保证您正在使用的任何设备驱动程序都不会查看您的进程的用户 ID 并因为它不再是 root 而崩溃。

关于linux - 有没有办法将文件描述符传递给另一个进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27369810/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com