繁体   English   中英

在mac平台上,如何以编程方式确定用户何时通过SSH会话登录?

[英]On the mac platform, how can I programmatically determine when a user logs in via an SSH session?

当打开终端(在Linux或Mac中)时,可以使用命令“谁”来查看当前登录的用户。 我想编写一个本机Mac应用程序(C或Objective-C),以在用户登录的准确时间(例如通过SSH)通知我。

我在这里找到此代码: SystemEventsMonitor.m

...看起来可以收集有关桌面的信息,但它并不能提供有关登录用户的任何信息。 我还找到了有关登录挂钩的链接,但我需要的是C或Objective-C api。

因此:如何检测用户何时通过SSH或其他方式登录到我的mac机?

本。

如您所知linux命令在Mac平台上也可以使用who ,您可以将此命令与system调用一起使用:

int main ()
{
    system("who");
    return 0;
}

您也可以使用w命令。

最后,我决定使用NSTask类以编程方式从Objective-c轮询命令/ usr / bin / users。 每隔5秒,我将通过分析命令的输出并将其与当前存储的状态进行比较,检查是否有新用户登录或注销,将新用户添加到该状态,并在新用户显示通知(即“用户登录事件” '),或者将其删除,并在注销后显示通知(即“用户注销事件”)。

github上的代码在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM