如何从Linux内核空间获取用户名

Pin*_*ade 5 linux module system-calls linux-kernel

我正在做一些Linux模块开发,限制我只使用内核可用的库,并且我想获得与我的模块的用户名交互的用户的用户名.AKA他们的"whoami".我的模块实际上是围绕系统调用...我可以从内核空间中的current-> pid获取pid.是否有任何方法可能使用pid来追踪pid所属的用户?还是另一个更简单的方法?

谢谢

Ily*_*kov 4

您可以使用filp_open/etc/passwd函数从内核打开文件。接下来,您需要使用file_operations来读取文件:

struct file * file = filp_open(...);
file->f_op->read(file, ...);
Run Code Online (Sandbox Code Playgroud)

阅读文件内容可能有助于UID -> username翻译。