鄉親們!如何從Active Directory獲取用戶密碼到期日期?
有一個Active Directory(Windows)和一個Linux samba客戶端。在Active Directory中,策略以這種方式進行了調整,以便用戶需要定期更改密碼(密碼具有到期時間)。
我的問題很簡單:如果我使用Samba在Linux機器上工作,我可以獲得給定用戶的過期時間嗎?
鄉親們!如何從Active Directory獲取用戶密碼到期日期?
有一個Active Directory(Windows)和一個Linux samba客戶端。在Active Directory中,策略以這種方式進行了調整,以便用戶需要定期更改密碼(密碼具有到期時間)。
我的問題很簡單:如果我使用Samba在Linux機器上工作,我可以獲得給定用戶的過期時間嗎?
這取決於域控制器的配置。你可以試試:
net ads user info [email protected] -S DC_SERVER_NAME -U USERNAME
其中[email protected]是從收集信息的帳戶,DC_SERVER_NAME是您的域控制器的主機名,用戶名是您的用戶名。
系統會提示您輸入您的域名密碼。
現在你得到任何信息到您的帳戶,包括您的密碼的到期日,或者你在這種情況下獲得
ads_pull_uint32 failed
,您的域控制器未配置爲提供賬戶信息的類UNIX系統。
您可以聯繫您的域管理員說服他安裝和配置Microsoft Windows Services for UNIX,以便該命令爲您提供所需的信息。
這個答案可能令人沮喪。這是對我來說,因爲我處於同樣的情況,並且對這個話題進行了很多研究。
我的解決方法:我設置了日後提醒80天,當我設置域密碼(smbpasswd -U USERNAME -r DC_SERVER_NAME)時,因爲它每90天過期一次。不完美,但可行。
[更新] 我找到了一種方法來確定與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]
謝謝。我遇到了失敗的答案。 –
更新時間:NT_STATUS_NONE_MAPPED –
NT_STATUS_NONE_MAPPED的原因可能在您的smb.conf中。在我的smb.conf中,唯一與default不同的是addde這兩行: idmap uid = 10000-20000 idmap gid = 10000-20000 – mondjunge
如果您正在使用Kerberos票據,ADpassword是一個簡單的Python應用程序來檢查密碼過期,並要求用戶去改變它。
真的沒人知道這個問題的答案嗎? –