OSX - 从系统服务检索登录用户的用户ID

时间:2009-07-29 21:20:40

标签: security macos

我正在编写一个在Mac OSX中作为系统服务运行的软件,似乎无法找到如何获得“活跃”用户。

似乎有API可以遍历登录用户列表,并且能够从一个值中判断哪个具有机器控制台...但是我找不到关于这些API的任何文档。

查看/dev/dev/console设备似乎由当前登录的用户拥有...但是我无法找到任何文档来确认这一点。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

回答Apple的Technical Q&A

提供的答案
  • 需要SystemConfiguration.framework

    #include <SystemConfiguration/SystemConfiguration.h>
    /* .... */
    CFStringRef result = SCDynamicStoreCopyConsoleUser(NULL, NULL, NULL);
    /* .... */
    

或者使用utmpx API获取所有登录帐户的列表,您应该从中获取必要的信息......

答案 1 :(得分:1)

您可以使用getuidgetgid来获取用户的用户ID和组ID。您可以使用getlogingetlogin_r来检索当前用户名称的字符串表示形式。您可以使用getpwuid获取其他用户信息。

作为旁注,“男人”是你的朋友。如果您有任何疑问,请咨询UNIX Manual Pages