使用用户名称的一部分搜索用户



我做了这个脚本。它在 passwd 中搜索后返回用户名,但用户名完全相同。我想知道是否可以更改它,如果用户输入为"r",它会搜索名称中带有 r 的每个用户,而不是搜索名为 r 的用户。

    if [ $# -eq 0 ]
    then
            echo "Enter your username ( ./user123 user here )"
    else
            nameList=$(getent passwd $@|cut -f1 -d:)
            for i in $nameList;
            do echo $i;
            done
    fi

为什么不直接grep密码数据库? 例如

 getent passwd | cut -f1 -d: | grep $1

当然,处理多个名称需要更多的代码。

您将永远无法使用 getent 执行此操作,因为它有效地隐藏了 passwd map 的后端存储,并且只搜索整个密钥。

但是,对于文件后端,这将起作用:

$ getent passwd | nawk -F: '$1 ~ /oot/ { print $1 }'
root

对于 ldap,您需要了解 ldap 查询。

相关内容

  • 没有找到相关文章

最新更新