Я наткнулся на команду getent group sudo
для вывода списка пользователей sudo в группе sudo и получил вывод. sudo:x:27:lion
Теперь мне интересно, что означают :x:
двоеточие и 27
... также я вижу те же символы в /etc/passwd
... так что же означают эти символы?
решение1
getent group
отображает записи из базы данных группы. Локальная база данных группы — это файл /etc/group
, формат которого задокументирован вgroup(5)
страница руководства.
Каждая строка в этом файле — это запись в базе данных, представляющая одну группу. Столбцы в строке разделены двоеточием. Второй столбец — это хэш пароля.
База данных пользователей/etc/passwd
имеет похожий формат, с разным содержимым в столбцах. Первые два столбца — это имя и хэш пароля, как и в группе.
Эти файлы имеют столбец для пароля только для обратной совместимости. Обычно хэш пароля находится не в общедоступной базе данных пользователей/групп, а в другой базе данных, называемойтеневая база данных(/etc/shadow
для пользователей,/etc/gshadow
для групп), который содержит хэши паролей и другую информацию об учетных записях, такую как даты истечения срока действия, и который может быть прочитан только привилегированными процессами.
Крайне редко пароли ставят на группу: обычно некоторые пользователи входят в группу, а другие — нет. Поэтому можно ожидать, что записи gshadow
будут иметь *
в столбце хэш пароля (это не действительный хэш, это маркер, указывающий на то, что нет способа получить доступ к пользователю/группе путем ввода пароля).
решение2
Это тот же самый вывод, что и здесь:
grep ^sudo: /etc/group
sudo
это название группыx
представляет собой поле пароля27
это GID (идентификатор группы)lion
является членомsudo
группы
Группы также могут иметь пароли; их пароли хранятся в файлах /etc/gshadow
.
man gpasswd
man gshadow