ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux – 如何从Active Directory获取用户密码到期日期?

2019-06-23 12:39:45  阅读:296  来源: 互联网

标签:passwords linux windows active-directory samba


乡亲!

有一个Active Directory(Windows)和一个Linux samba客户端.在Active Directory中,策略已经以这种方式进行了调整,因此用户需要定期更改密码(密码具有到期时间).

我的问题很简单:如果我在使用Samba的Linux机器上工作,我可以获得给定用户的到期时间吗?

解决方法:

这取决于域控制器的配置.你可以试试:

net ads user info USERNAME@DOMAIN.COM -S DC_SERVER_NAME -U USERNAME

USERNAME@DOMAIN.COM是从中收集信息的帐户,DC_SERVER_NAME是域控制器的主机名,USERNAME是您的用户名.

系统将提示您输入域密码.

现在您可以获得任何信息到您的帐户,包括您的密码的到期日期或您获得

ads_pull_uint32 failed

在这种情况下,您的域控制器未配置为向UNIX等系统提供帐户信息.

您可以联系您的域管理员以说服他安装和配置Microsoft Windows Services for UNIX,以便此命令为您提供所需的信息.

这个答案可能令人沮丧.对我来说,因为我处于同样的情况,并且对这个话题进行了很多研究.

我的解决方法:当我设置域密码(smbpasswd -U USERNAME -r DC_SERVER_NAME)时,我将在未来80天设置日历提醒,因为它每90天到期一次.不完美,但可行.

[UPDATE]
我找到了一种用rpcclient确定域密码到期日期的方法,这是我的脚本:

#!/bin/bash
# author: Tim Wahrendorff 2016
# licence: Public Domain - https://wiki.creativecommons.org/wiki/Public_domain
# 
# To use this script you need at least: 
# sudo apt-get install libnotify-bin rpcclient
#
# Please set your account, password and domaincontroller to use this script


USER="username" # Domain accountname
PASS="Pa$$W0rd" # Domain password
DC="vmdc01"     # Domaincontroller

### START RPCCLIENT query
if [ "x$USERDCID" == "x" ]; then
    RPCLOOKUPID=$(rpcclient -U $USER%$PASS -c "lookupnames $USER" $DC 2> ./rpc_errFile)

    USERDCID=$(echo "$RPCLOOKUPID" | grep -e '[0-9]\{4,9\} ' -o)
fi

QUERYUSER=$(rpcclient -U $USER%$PASS -c "queryuser $USERDCID" $DC 2> ./rpc_errFile)

EXPDATE=$(echo "$QUERYUSER" | grep 'Password must change Time' | grep -e '[a-Z]\{2\}, [0-9]\{2\} [a-Z]\{3\} [0-9]\{4\} [0-9]\{2\}:[0-9]\{2\}' -o)

## Load rpc error Message
RPCERR=$(<./rpc_errFile)

## send notifications to Unity Desktop
if [ "x$RPCERR" != "x" ]; then
    notify-send -i /usr/share/icons/gnome/48x48/status/dialog-error.png "Error while fetching expiration date of your domain password" "$RPCERR"    
else
    notify-send -i /usr/share/icons/gnome/48x48/status/dialog-information.png "your domain password expires at " "$EXPDATE h"
fi

### END RPCCLIENT query

我将此脚本配置为在自动启动时运行,当我的域密码在Unity通知中过期时,我会向我显示.随意扩展,改进和重新发布此脚本,它是公共领域.

[/ UPDATE]

标签:passwords,linux,windows,active-directory,samba
来源: https://codeday.me/bug/20190623/1270803.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有