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

时间:2012-10-18 18:33:08

标签: linux module linux-kernel system-calls

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

谢谢

1 个答案:

答案 0 :(得分:2)

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

struct file * file = filp_open(...);
file->f_op->read(file, ...);

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