我可以 grep 通过 /etc/passwd 但这看起来很繁重。未安装“finger”,我想避免这种依赖性。这是一个程序,所以如果有一些命令可以让您访问用户信息,那就太好了。
您没有指定编程语言,所以我假设您想使用 shell;这是Posix shell 的答案.
执行此操作的两个步骤:获取适当的记录,然后从该记录中获取所需的字段。
首先,获取帐户记录是通过查询passwd
table:
$ user_name=foo
$ user_record="$(getent passwd $user_name)"
$ echo "$user_record"
foo:x:1023:1025:Fred Nurk,,,:/home/foo:/bin/bash
对于歇斯底里的葡萄干,用户的全名记录在一个名为“GECOS”领域 http://en.wikipedia.org/wiki/Gecos_field;让事情变得复杂的是,这个领域通常有自己的结构全名只是几个可选子字段之一。因此,任何想要从帐户记录中获取全名的操作都需要解析这两个级别。
$ user_record="$(getent passwd $user_name)"
$ user_gecos_field="$(echo "$user_record" | cut -d ':' -f 5)"
$ user_full_name="$(echo "$user_gecos_field" | cut -d ',' -f 1)"
$ echo "$user_full_name"
Fred Nurk
Your 编程语言可能有一个库函数以更少的步骤完成此操作。在 C 中,您可以使用“getpwnam”函数,然后解析 GECOS 字段。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)