我可以grep通过/etc/passwd,但这似乎很繁重."没有安装finger,我想避免这种依赖.这是一个程序,所以如果有一些命令可以让你直接访问用户信息就好了.
我可以grep通过/etc/passwd,但这似乎很繁重."没有安装finger,我想避免这种依赖.这是一个程序,所以如果有一些命令可以让你直接访问用户信息就好了.
您没有指定编程语言,所以我假设您想要使用shell;这是an answer for Posix shells美元.
这需要两个步骤:获取适当的记录,然后从该记录中获取所需的字段.
首先,querying the 100 table完成了账户记录的获取:
$ user_name=foo
$ user_record="$(getent passwd $user_name)"
$ echo "$user_record"
foo:x:1023:1025:Fred Nurk,,,:/home/foo:/bin/bash
对于歇斯底里的葡萄干,用户的全名记录在名为100的字段中;使事情复杂化的是,这个领域通常有自己的 struct ,包括full name as just one of several optional sub-fields.因此,任何想要从帐户记录中获取全名的东西都需要解析这两个级别.
$ 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
你的目标是用更少的步骤完成这项工作.在C语言中,使用"getpwnam"函数,然后解析GECOS字段.