Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I could not find a pdbedit or smbldap-userlist option to list just the active samba users.

Solution on Question [1] lists all users and machines and smbldap-userlist -ua lists all users, even if they are inactive. I mean Inactive, not a logged off user but a user that is not active on the domain anymore.

I tried awk and grep to parse the output but I could not match a pattern on [status SMB] column.

Does somebody has a command-line or shell solution? (although, a Python solution will be very welcome)

[1] List Samba users?

share|improve this question

The "smbstatus" tool should show the currently active users on a server. There might be some false positives as workstations often keep connections open after a user has logged off.

share|improve this answer
    
Thanks for the reply. But I didn't explain the problem well. I want the users that CAN login, not the users logged on a certain time. I rephrased the question. – Josir Nov 9 '11 at 19:16

you may use the following simple bash script. It rules out machine accounts and disabled accounts (account flags W and D)

#!/bin/bash    
cd ~
lista=`pdbedit -L | sort | uniq | cut -f1 --delimiter=':'`

for i in $lista
do
        ret=`pdbedit -L -v $i | grep "Account Flags" | cut -f2 --delimiter='[' | cut -f1 --delimiter=' '`
        ismachine_account=`echo $ret | grep W | wc -l`
        isdeleted_account=`echo $ret | grep D | wc -l`
        if [ $ismachine_account -eq 0 -a $isdeleted_account -eq 0 ]; then
                echo $i
        fi
done    
exit
share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .