[Samba] Users list and the date the password will expire
Ole Traupe
ole.traupe at tu-berlin.de
Thu Feb 9 11:03:42 UTC 2017
Well, that was a little premature. Querying the attribute directly
actually leads to a longer (and partly redundant) statement:
exp_date=`ldbsearch -H /usr/local/samba/private/sam.ldb -s sub -b
$basedn cn=$user msDS-UserPasswordExpiryTimeComputed | grep
msDS-UserPasswordExpiryTimeComputed | tr -dc '0-9'`
Ole
On 09.02.2017 11:25, Ole Traupe via samba wrote:
> Exactly, and got reminded that I don't have to grep anything but can
> ask for specific parameters. Been a while that I used ldbsearch. ;)
>
> Ole
>
>
> On 08.02.2017 18:46, Rowland Penny via samba wrote:
>> On Wed, 8 Feb 2017 18:32:15 +0100
>> Ole Traupe via samba <samba at lists.samba.org> wrote:
>>
>>> That was weird: didn't see (expect) there to be a discussion right on
>>> the same topic going on at this very moment.
>>>
>>> Ole
>>>
>>>
>>> On 08.02.2017 17:37, Ole Traupe via samba wrote:
>>>> Hi list,
>>>>
>>>> long time no see! :)
>>>>
>>>> I was looking for an email reminder script for users whose password
>>>> will expire. Some of our users are on long travels and will never
>>>> see the Domain's default notification. I haven't found any complete
>>>> (and simple) solution online. So I wrote one. In case it helps
>>>> anyone, you find it below.
>>>>
>>>> You should only have to fill in the blanks for the the "basedn"
>>>> search parameter. Time conversion methods are taken from here:
>>>> http://meinit.nl/convert-active-directory-lastlogon-time-to-unix-readable-time
>>>>
>>>>
>>>>
>>>> Ole
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> #!/bin/sh
>>>>
>>>> max_pwAge=`samba-tool domain passwordsettings show | grep "Maximum
>>>> password age" | tr -dc '0-9'`
>>>> user_list=`wbinfo -u`
>>>>
>>>> basedn="OU=*,DC=*,DC=*,DC=*"
>>>>
>>>> for user in $user_list; do
>>>>
>>>> set_date=`ldbsearch -H /usr/local/samba/private/sam.ldb -s
>>>> sub -b $basedn cn=$user | grep pwdLastSet | tr -dc '0-9'`
>>>>
>>>> if [ $set_date ] && [ $set_date -gt 1 ]; then
>>>>
>>>> UNIXTimeStamp=$((($set_date/10000000)-11644473600))
>>>> then_sec=`date -d "1970-01-01 $UNIXTimeStamp sec
>>>> GMT" +%s`
>>>> now_sec=`date +%s`
>>>> diff_days=$(( ( $now_sec - $then_sec )/60/60/24 ))
>>>> exp_days=$(( $max_pwAge - $diff_days ))
>>>>
>>>> if [ $exp_days == 90 ] || [ $exp_days == 60 ] || [
>>>> $exp_days == 30 ]; then
>>>>
>>>> mail_string=`ldbsearch -H
>>>> /usr/local/samba/private/sam.ldb -s sub -b $basedn cn=$user | grep
>>>> mail` echo "Gotcha: $user" | mail -s "WARNING: Your
>>>> domain account password will expire in $exp_days days!"
>>>> ${mail_string:6}
>>>>
>>>> fi
>>>> fi
>>>> done
>>>>
>>>
>> Yes and now you know that you are using the wrong attribute LOL
>>
>> Rowland
>>
>
>
More information about the samba
mailing list