"Другой" палец (поля GECOS в /etc / passwd)

в файле /etc/passwd у нас так называемый GECOS fields (что расшифровывается как "General Electric Comprehensive Operating System"), то есть:

username:password:userid:groupid:gecos:home-dir:shell 

здесь GECOS разделились так:

:FullName,RoomAddress,WorkPhone,HomePhone,Others:

и Others делятся на столько запятых, сколько вам нравится:

:FullName,RoomAddress,WorkPhone,HomePhone,Other1,Other2,Other3:

на man chfn страниц можно прочитать:

другое поле используется для хранения учетной информации, используемой другими
приложения.

теперь, для разработчика приложений (меня интересует C language,system calls и/или bash script) который самый лучший путь схватить эту информацию?

и учитывая, что только Bash среда, учитывая, что finger команда не может отобразить others поля (или, по крайней мере, я не вижу, как), что и другие команды, которые могут? Я знаю это chfn не только показать, но и разрешить их изменение. Что если просто вывести его на stdout?

29
задан kasperd
20.12.2022 21:45 Количество просмотров материала 2853
Распечатать страницу

2 ответа

лучший способ, который я нашел, это использовать getent потому что это будет работать с LDAP / NIS или другими методами не локальных пользователей

getent passwd $UID| awk -F ":" '{print }'
2
отвечен Tim Hughes 2022-12-22 05:33

например, в скрипте bash вы можете распечатать пятое поле файла /etc/passwd С awk / gawk:

awk -F ":" '{print }' /etc/passwd

параметр -F fs использует fs для разделителя полей ввода (в данном случае :).

Вы можете прочитать больше, например, на домашней странице GNU awk [1].

Awk имеет функцию split() разделить строку (где в этом случае вы будете использовать 5-е поле в качестве строки и , в качестве разделителя). Брать вдохновения из какого-то другого ответа об этом [2]....

1
отвечен Hastur 2022-12-22 07:50

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх