给定一个用户数据来自例如 OpenLDAP 数据库并且不在/etc/passwd
文件中的系统。是否可以通过指定(部分)全名来搜索getent passwd
数据库并查找用户 ID/名称?
例如getent passwd newbie
给了我以下条目
newbie:x:1000:1000:firstname lastname:/home/newbie:/bin/zsh
如何找到所有具有“姓氏”的用户?getpwnam
gecos 领域有类似的东西吗?
注意:我不能只使用getent passwd
(没有用户名)然后解析它,因为我的数据库太大了。
我还没有找到搜索数据库的方法,但是直接在 OpenLDAP 中查找条目对我有用。
您可以使用类似以下
sed
命令的内容:根据您的问题,上述 'sed` 正则表达式假定 GECOS 字段完全包含 <FIRSTNAME><SPACE><LASTNAME>,例如“James Smith”。它可以轻松修改以适应其他 GECOS 现场布局。
您可以在以下输出上使用 awk
getent passwd
: