使用 *nix “last” 命令或类似命令 - 获取包括远程桌面(VNC)登录的工作站

使用 *nix “last” 命令或类似命令 - 获取包括远程桌面(VNC)登录的工作站

我的情况:我在 SUSE 服务器上设置了一个 Ant 构建过程,多个开发人员可以访问该服务器。构建过程只定义了一个用户,因此所有开发人员都使用该构建用户 - 当自动电子邮件发送给每个人但没有人知道构建消息是发给谁时,事情变得有点混乱。

我想捕获用于触发构建过程的远程用户的用户名(或工作站名称)。我正在查看“last”命令,但有一个缺点:如果有人使用 VNC 连接到图形登录,它似乎会将“127.0.0.1”记录为远程登录,所以我有点卡在这部分。

有人能针对这种情况提出一些建议吗?

答案1

成功解决此问题的关键是使用适当的安全性。这将花费您的用户很少的费用,并让您免于烦恼。每个用户都应该有自己的登录名,或者如果 Ant 具有此功能,则应使用附加的某种用户 ID 远程提交构建作业。

我还将禁用 VNC 的所有用途(管理除外)。毕竟这是服务器。如果用户需要 GUI 访问,他们应该通过 X 进行访问,这将允许多个用户访问并将 GUI 卸载到他们的终端。

但是,如果您的 VNC 服务器记录或可以记录其连接的来源,那么您可以对其进行 grep 并尝试匹配。

答案2

两个想法:

首先,在这一点上我基本同意 Dennis Williamson 的观点。可以通过为每个人设置唯一的登录名并让登录名源自通用/共享环境,或者让开发人员签出代码并在本地构建来避免此问题。也许第二部分由于硬件或其他原因不可行。

您可能会考虑使用远程构建工具。 远程蚂蚁(咆哮)其优点是开源,如果需要,可以非常轻松地设置或修改。我喜欢简单。缺点是支持很少,所以如果你在等待开发人员升级它 - 那么不要指望。服务器任务部分ant-contrib还。

通过远程 ant 任务将本地 user.name 传递到 suse 服务器非常容易。

相关内容