【问题标题】:Getting username of current user in kernel space在内核空间获取当前用户的用户名
【发布时间】:2018-04-20 01:37:11
【问题描述】:

我正在尝试实现一个打印 hello“当前用户名”的系统调用。我尝试使用 getpwuid(getuid()) 但没有奏效,因为我无法包含 pwd.h 或 unistd.h 或 sys/types.h。我目前不知道如何完成这项工作。

【问题讨论】:

  • 你为什么要这样做?这几乎肯定是个坏主意
  • 很简单。我得到的一个硬件希望我实现这个:/

标签: unix linux-kernel operating-system system-calls


【解决方案1】:

Linux 内核没有关于用户名的概念;它只知道用户标识符 (uid)。

从 uid 到用户名的映射包含在 用户数据库 中,该数据库存储为文件 /etc/passwd。您需要解析此文件以提取用户名。

【讨论】:

  • 谢谢,有什么资源(如在线指南或书籍)可以开始吗? @Tsyvarev
  • 只要谷歌“/etc/passwd 格式”,你就会知道用户数据库文件的格式。 (格式实际上很容易解析)。如果您询问从内核空间读取文件,也请使用 google。
猜你喜欢
  • 2012-10-09
  • 1970-01-01
  • 1970-01-01
  • 2014-08-21
  • 2013-04-19
  • 2018-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多