![如何列出活跃的 Samba 用户?](https://linux22.com/image/1290442/%E5%A6%82%E4%BD%95%E5%88%97%E5%87%BA%E6%B4%BB%E8%B7%83%E7%9A%84%20Samba%20%E7%94%A8%E6%88%B7%EF%BC%9F.png)
我找不到 pdbedit 或 smbldap-userlist 选项来列出活跃的 samba 用户。
问题 [1] 的解决方案列出了所有用户和计算机,而 smbldap-userlist -ua 列出了所有用户,即使他们处于非活动状态。我的意思是非活动用户,不是注销的用户,而是不再在域中活动的用户。
我尝试使用 awk 和 grep 来解析输出,但无法匹配 [status SMB] 列上的模式。
有人有命令行或 shell 解决方案吗?(尽管 Python 解决方案非常受欢迎)
[1]列出 Samba 用户?
答案1
“smbstatus”工具应显示服务器上当前活动的用户。由于工作站通常在用户注销后保持连接打开,因此可能会出现一些误报。
答案2
您可以使用以下简单的 bash 脚本。它排除机器帐户和禁用帐户(帐户标志 W 和 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