Вы не указываете язык программирования, поэтому я предполагаю, что вы хотите использовать оболочку; вот ответ для снарядов Posix .
Два шага к этому: получить соответствующую запись, затем получить нужное поле из этой записи.
Во-первых, получение учетной записи выполняется путем запроса таблицы passwd
:
$ user_name=foo
$ user_record="$(getent passwd $user_name)"
$ echo "$user_record"
foo:x:1023:1025:Fred Nurk,,,:/home/foo:/bin/bash
Для истерических изюмов полное имя пользователя записывается в поле, называемом «GECOS» ; чтобы усложнить ситуацию, это поле часто имеет свою собственную структуру с полным именем как одно из нескольких необязательных подполей . Поэтому все, что хочет получить полное имя из записи учетной записи, должно анализировать оба этих уровня.
$ 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.