Macos Mac标准/非管理员用户读取登录历史记录?

Macos Mac标准/非管理员用户读取登录历史记录?,macos,cocoa,login,history,Macos,Cocoa,Login,History,我写了一个小程序,读取wtmp来显示登录历史(utmpx.h),问题是它只在用户是管理员用户时起作用,MacOSX的标准用户根本看不到任何记录 我知道wmtp只能由管理员读取,所以我的问题是:除了读取wtmp之外,还有其他方法来获取登录历史记录吗?或者,标准用户是否可以读取wtmp(或者只是读取用户自己的历史记录) 感谢并为我糟糕的英语感到抱歉。我使用的是OS X,默认情况下我没有wtmp或utmp。我有last,我似乎可以作为非管理员用户运行它 another@17:~$ last uncre

我写了一个小程序,读取wtmp来显示登录历史(utmpx.h),问题是它只在用户是管理员用户时起作用,MacOSX的标准用户根本看不到任何记录

我知道wmtp只能由管理员读取,所以我的问题是:除了读取wtmp之外,还有其他方法来获取登录历史记录吗?或者,标准用户是否可以读取wtmp(或者只是读取用户自己的历史记录)


感谢并为我糟糕的英语感到抱歉。

我使用的是OS X,默认情况下我没有wtmp或utmp。我有last,我似乎可以作为非管理员用户运行它

another@17:~$ last
uncreative  ttys004                   Wed Oct 26 21:57   still logged in
uncreative  ttys003                   Wed Oct 26 20:55   still logged in
....

another@17:~$ groups
staff com.apple.sharepoint.group.3 localaccounts everyone com.apple.sharepoint.group.1 com.apple.sharepoint.group.2 com.apple.sharepoint.group.4

我已经阅读了last的源代码,它使用wtmp(getutxent\uwtmp)。奇怪的是,当我以标准用户身份运行最后一个命令时,我看不到任何日志,它只显示“wtmp开始[当前时间]”,我不知道为什么。您使用的是哪个版本的OS X?另外,您是如何添加非管理员帐户的?我使用的是10.7.2 Lion,我在System Preferences.Hmm中创建了用户。这对我在《雪豹》中很有效,但当我在《狮子》中进行实验时,我得到了相同的结果,谢谢你提供的信息!我没有在雪豹身上做过实验。你能添加更多细节吗,比如在
utmpx.h
中调用哪些函数(或使用哪些结构)来解决这个问题?您是在尝试直接读取文件还是在使用API?你读过曼恩utmpx吗?您使用的是哪个版本的OS X?您正在尝试读取哪个特定文件(完整路径),其权限是什么?(运行
ls-la
;根据我对手册页的阅读,它应该位于
/var/run/utmpx
)谢谢Mike。我已经阅读了utmpx的手册页,但是/var/run/utmpx似乎只包含utmp记录,而不包含wtmp。我在utmpx.h中使用了void setutxent_wtmp(int)、getutxent_wtmp(void)、endutxent_wtmp(void),与上一个版本的源代码中相同。我正在运行Lion 10.7.2。看来苹果已经将wtmp记录转移到了ASL。我可以以管理员用户的身份查看控制台中的wtmp日志,但标准用户无法读取。