5

Мне известно, что файл /etc /passwd состоит из строк учетных записей пользователей, которые состоят из 7 полей, а именно;

username:encrypted password or token:userid:groupid:gecos:home directory:default shell 

однако детали нескольких пользователей выглядят как

username:x:1000:1000:username,,,:/home/username:/bin/bash

Что представляют запятые?

РЕДАКТИРОВАТЬ

В дополнение к комментарию Даниэля, приведенному ниже: я спрашиваю, почему появляются запятые, потому что никакая другая учетная запись пользователя в /etc /passwd не имеет такой структуры, несмотря на отсутствие других деталей поля gecos.

2 ответа2

6

Поле Gecos состоит не только из имени пользователя, но и информации об этом пользователе, например:

  • Настоящее имя
  • Номер комнаты
  • Номер телефона
  • и так далее...

Если мы посмотрим на пример статьи из Википедии, это станет ясно:

jsmith:x:1001:1000:Joe Smith,Room 1007,(234)555-8910,(234)555-0044,email:/home/jsmith:/bin/sh

Пятое поле, называемое полем Gecos, является комментарием, который описывает человека или учетную запись. Как правило, это набор значений, разделенных запятыми, включая полное имя пользователя и контактные данные.

Так что вы видите пустой набор информации о пользователях. Скорее всего, от системы к системе зависит, как эта информация обрабатывается и устанавливается в файле passwd .

1

Как сказано в комментариях к исходному вопросу: почему в моем файле /etc /passwd есть странные запятые? и http://en.wikipedia.org/wiki/Gecos_field объясняют, что это за поля.

Чтобы ответить на вопрос «почему они появляются для одних пользователей, а не для других»: эта информация обычно создается инструментом, который добавляет пользователя в систему. Например, не имеет смысла иметь, например, "Номер комнаты" для пользователя sshd , и, таким образом, эти поля не учитываются процессом, создающим этих пользователей.

Но почему тогда я вижу, например,

mysql:x:107:109:MySQL Server,,,:/var/lib/mysql:/bin/false

в моем etc/passwd? Этот пользователь, вероятно, был создан сценарием, который для удобства использовал adduser (присутствует во многих распространенных системах) вместо более низкоуровневого инструмента useradd (я думаю, что наименование могло бы быть лучше), и adduser автоматически создает заполнители Gecos. , С другой стороны, при создании пользователя это мог быть сознательный выбор - просто придерживаться формата Gecos для соответствия, но я полагаю, что в этих случаях это, как правило, ненужная затея.

Почему же поля Gecos пусты для моего обычного пользователя? Потому что я просто никогда не заполнял номер комнаты / и т.д. когда я создал этого пользователя (я даже не знаю, получил ли я этот выбор во время установки системы - я так не думаю).

(На заметке: эта система означает, что полное имя, например, «Даниэль Андерссон, доктор философии», будет неправильно интерпретировано большинством инструментов.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .