如何在solaris中找到lastlog详细信息

jud*_*udi 2 solaris last

我需要在solaris 中使用linux lastlog 的等效命令,需要编写一个脚本来查找用户在solaris 服务器中上次登录的日期和时间。Linux 使用 lastlog 命令很容易获取。

我尝试了 last -1 USERID ,如果任何用户未登录该服务器,则没有 ouptut ,任务是找到未登录服务器超过 90 天的用户,脚本应提供输出为

ServerName USERID 10-Jun-2018 3Days
Run Code Online (Sandbox Code Playgroud)

Jde*_*eBP 6

没有lastlog与操作系统提供的 Linux命令直接等效的命令。

在 Linux 登录记账系统中,有一个表记录了每个用户帐户的最后登录时间,由该帐户的用户 ID 索引。在 NetBSD、FreeBSD 和 OpenBSD 登录记帐系统中,有一个等效的表(尽管具有不同的结构和名称),以及(在 NetBSD 和 FreeBSD 系统中)lastlogin可以追溯到 1990 年代中期的命令。在 Linux 和 BSD 世界中,此表由写入登录日志表和当前活动登录表(登录数据库中的其他两个表)的相同程序更新。

Solaris 有两张表:一张等价的表和一张不完全等价的表。

last其他人指向的命令并不是特别有用,因为它不从任何一个操作。它操作了登录记帐数据库中的不同表,即登录事件表的日志;正如您所看到的,如果一个帐户从未登录过,那么该表中将没有任何内容需要处理。而相比之下,对于上次登录时间表,每个用户帐户都有一个记录(在 BSD 上是一个空的隐式记录,在 Linux 上是一个显式的空记录)。

不完全等效的 Solaris 表是/var/adm/acct/sum/loginlog. login当登录发生时,这不是由程序直接填充的,并且没有直接等效的程序来报告它。

它与lastlogin命令相关联;然而,这与前面提到的那个名字的命令完全不同。在 Solaris 上,它是写入该表的工具,而不是报告其内容的工具。(这也是lastloginAIX 上的用途。)runacct每天运行的工具调用lastlogin命令来填充此表。报告是通过prtacct命令完成的。

直接等价的 Solaris 表是/var/adm/lastlog,Oracle doco 中没有提到。没有提供读取它的程序。然而,有一个lastlog由 Richard Hamilton 编写的第三方程序(直到该软件在 Oracle 死掉之前)可用。您可能想说服 OpenIndiana/Illumos 人员合并这样一个命令。OmniOS 工程师 Dan McDonald 最近在 2016 年 1 月接触过这些东西。

进一步阅读

  • 乔纳森·德·博因·波拉德 (2018)。Unix 登录数据库。经常给出答案。
  • 系统会计文件”。 系统管理指南:高级管理。Oracle Solaris 10 8/11 信息库。甲骨文。2011 年。
  • 最后日志。Oracle Solaris 博客。2010-07-15。
  • lastlogin. FreeBSD 系统管理员手册。2011-06-06。
  • last. 用户命令手册。伊卢莫斯。2017-04-12。
  • acctsh. 系统管理命令。SunOS 5.11。2002-03-15。