Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.