在 Solaris 中获取密码过期前的天数

在 Solaris 中获取密码过期前的天数

我想知道我的帐户密码在 Solaris 中过期之前“剩余”的天数。

chage在 Linux 中使用命令来获取此信息。

passwd -S <userid>可以获取 Linux 和 Solaris 上密码到期的剩余天数,但不幸的是,这passwd需要sudo提升权限。

笔记:我需要知道我自己登录的帐户(而不是任何其他用户)的密码到期的剩余天数

我最终将使用这里的解决方案到 ansible 工具中。

答案1

/etc/passwd如果您的登录是基于文件的 ( / /etc/shadow) 并且您没有读取 的权限/etc/shadow,那么显然无法在 Solaris 上获取此信息。(请注意,阅读/etc/shadow使您可以访问 中的散列密码/etc/shadow。然后您就可以执行暴力攻击来破解它们......)

如果您有 root 访问权限,则可以使用

logins -x -l username

结果看起来像这样:

-bash-4.4# logins -x -l ahenle
ahenle          1024    users           100     
                        /home/ahenle
                        /usr/bin/bash
                        PS 101720 -1 -1 -1

如果您没有 root 访问权限(或类似的 read 权限/etc/shadow),最后一行将是

                        LK 010170 0 0 0

该数值为零(0101701970 年 1 月 1 日后零天)。

手册logins:

登录(8)

姓名

登录 - 列出用户和系统登录信息

概要

/usr/bin/logins [-S repository] [
-admoprstux] [-g group...]
     [-l login_name...]

描述

此命令显示系统已知的用户、角色和系统登录信息。输出内容由命令选项控制,可以包括以下内容:用户、角色或系统登录名;用户 ID 号;passwd账户字段值(用户名或其他信息);主要组名称;主要组 ID;多个组名;多个组 ID;主目录;登录外壳;和四个密码老化参数。 ...

...

选项

选项可以一起使用。如果是这样,则会显示符合任何条件的任何登录。

支持以下选项:

...

–l 登录名...

选择请求的登录。

...

-X

打印有关每个选定用户的一组扩展信息。扩展信息包括主目录、登录 shell 和密码时效信息,每项信息都显示在单独的行上。密码信息当前由密码状态组成:

NP账户没有密码

LK 帐户已被锁定以进行 UNIX 身份验证

AL账户因超过配置的认证失败次数而被自动锁定。

NL账户是一个无需登录的账户

UP 该帐号尚未被管理员激活,无法使用。

PS 帐户可能有一个有效的密码

UN 帐户密码状态未知。也就是说,它不是可识别的散列密码或任何上述条目。请参阅 crypt(3C) 了解有效的密码哈希值。

如果登录有密码,则状态后面是上次更改密码的日期、更改之间所需的天数,以及需要进行更改之前允许的天数。密码时效信息显示用户在密码过期之前收到密码过期警告消息(登录时)的时间间隔。

相关内容