
Мне известно, что файл /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.
решение1
Поле Gecos содержит не только имя пользователя, но и информацию об этом пользователе, например:
- Настоящее имя
- Номер комнаты
- Номер телефона
- и так далее...
Если мы посмотрим например статьи Википедии, это становится ясно:
jsmith:x:1001:1000:Joe Smith,Room 1007,(234)555-8910,(234)555-0044,email:/home/jsmith:/bin/sh
Пятое поле, называемое полем Gecos, — это комментарий, описывающий человека или учетную запись. Обычно это набор разделенных запятыми значений, включая полное имя пользователя и контактные данные.
Итак, то, что вы видите, — это пустой набор информации о пользователе. Скорее всего, в разных системах эта информация обрабатывается и задается в passwd
файле по-разному.
решение2
Как сказано в комментариях к оригинальному вопросу:Почему в моем файле /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 пусты и для моего обычного пользователя? Потому что я просто не заполнил номер комнаты и т. д., когда создавал этого пользователя (даже не знаю, был ли у меня такой выбор при установке системы - не думаю).
(Заметка на полях: эта система означает, что полное имя, например, «Даниэль Андерссон, доктор философии», будет неправильно интерпретировано большинством инструментов.)