是否可以删除/proc/<;中的fd链接;pid>/fd?

是否可以删除/proc/<;中的fd链接;pid>/fd?,c,linux,linux-kernel,C,Linux,Linux Kernel,我一直在尝试设置一个内核模块,以便稍后在程序中伪造GPS,以便模拟与使用固定路径的gpsd的通信。但是现在我被卡住了,因为gpsd在开始读/写之前检查/proc//fd中是否有多个指向该文件的链接 有没有办法从这个目录中排除链接,但仍然能够从我的gpsfake中读/写文件?或者从模块中完全绕过此fd跟踪?/proc/是内核公开的进程上类似文件系统的视图 因此,删除/添加/更改此目录中任何内容的唯一方法是更改进程本身(在您的情况下:使进程关闭有问题的文件描述符,以消除相应的符号链接) 另一种方法是

我一直在尝试设置一个内核模块,以便稍后在程序中伪造GPS,以便模拟与使用固定路径的gpsd的通信。但是现在我被卡住了,因为gpsd在开始读/写之前检查/proc//fd中是否有多个指向该文件的链接

有没有办法从这个目录中排除链接,但仍然能够从我的gpsfake中读/写文件?或者从模块中完全绕过此fd跟踪?

/proc/
是内核公开的进程上类似文件系统的视图

因此,删除/添加/更改此目录中任何内容的唯一方法是更改进程本身(在您的情况下:使进程关闭有问题的文件描述符,以消除相应的符号链接)


另一种方法是修补内核,但您可能不想这样做。

我没有尝试过,但是如果您在/proc之上安装一个联合文件系统(我忘了哪些文件系统在内核中是最新的),然后从上层删除fd链接,会发生什么?我记得,union fs将创建一个白色文件,使其看起来被删除,即使它仍然存在。我到目前为止还没有听说过union文件系统,我对这些内核非常陌生。我想我会读一些东西。试着在找到链接的
/proc//fd/
目录上绑定其他东西;作为根:
mkdir为空;mount-B empty/proc/PID/fd
。嘿@mosvy。到目前为止,你的建议奏效了。如果我初始化我的伪GPS并进行绑定挂载,它将通过gpsd检查,同时仍在读取。我想关闭文件描述符对于我现在尝试的操作来说并不是真的可能,但是是的。。。我看看以后我是否能在这个问题上有更多的回旋余地。谢谢!=)