Команда id в Linux используется для отображения реального и эффективного идентификатора пользователя и идентификатора группы пользователя.
В этой статье мы покажем вам, как использовать команду id в Linux, с некоторыми из наиболее распространенных и полезных примеров.
Команда id в Linux
Это синтаксис команды id:
id [options] [username]
Если вы не предоставите имя пользователя, команда отобразит сведения о текущем вошедшем в систему пользователе.
id
Вот вывод, который он отображал для нас в Ubuntu Linux.
destroyer@andreyex:~$ id uid=1000(destroyer) gid=1000(destroyer) groups=1000(destroyer),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),119(lpadmin),130(lxd),131(sambashare)
В приведенном выше выводе пользователь destroyer имеет uid 1000 и gid 1000. Это основная группа, к которой пользователь destroyer относится по умолчанию.
Кроме того, пользователь destroyer также является членом некоторых других групп, и эти группы также отображаются в выходных данных.
Примеры команды id
Вот наиболее распространенные параметры для команды id:
вариант | Описание |
---|---|
-u | Распечатать эффективный идентификатор пользователя |
-g | Распечатать эффективный идентификатор группы |
-G | Распечатать идентификаторы всех групп, к которым принадлежит пользователь |
-n | Напечатайте имена вместо идентификаторов (должны сочетаться с -u, -g или -G) |
-r | Напечатайте реальный идентификатор вместо эффективных идентификаторов (должен сочетаться с -u, -g или -G) |
Реальный против Эффективного идентификатора пользователя и группы?
Это может сбить вас с толку. Когда создается пользователь, ему дается имя пользователя, идентификатор пользователя (uid), группа по умолчанию, а идентификатор этой группы по умолчанию – это gid для этого пользователя. Это «реальный» идентификатор пользователя и группы.
Поскольку в Linux процессы могут выполняться как другие пользователи и группы, существует также второй набор идентификаторов, называемый эффективными идентификаторами.
В большинстве случаев действительные и эффективные идентификаторы UID и GID совпадают. Но бывают ситуации, когда обычный пользователь должен изменить привилегированный файл. Здесь используется концепция эффективного идентификатора. Наиболее распространенный пример – использование команды passwd для изменения пароля, который изменяет файл /etc/passwd, принадлежащий root.
1. Распечатать UID и GID определенного пользователя
Чтобы распечатать uid и gid и все другие идентификаторы группы пользователя, вам просто нужно указать имя пользователя:
id username
Вы можете перечислить всех пользователей в вашей системе Linux, чтобы получить желаемое имя пользователя.
2. Распечатайте только UID пользователя
Вы можете использовать -uопцию для печати UID в Linux. Как упоминалось ранее, если вы пропустите имя пользователя, в нем отобразится информация о вошедшем в систему пользователе.
id -u userame
Имейте в виду, что он отображает только UID, числовое значение, а не имя.
destroyer@andreyex:~$ id -u 1000
3. Распечатайте только GID пользователя
Точно так же вы можете использовать опцию -gдля печати GID пользователя. Когда мы говорим GID, это числовой идентификатор группы по умолчанию, к которой принадлежит пользователь.
id -g username
Опять же, он будет отображать только числовой идентификатор группы.
destroyer@andreyex:~$ id -g nobody 65534
4. Распечатайте идентификаторы всех других групп, к которым принадлежит пользователь
Пользователь может принадлежать к нескольким группам. Это основная особенность файловой системы Linux. Вы можете использовать команду usermod и добавить ее в группу sudo, чтобы предоставить ей привилегии root.
Вы можете использовать опцию -G для отображения идентификаторов всех групп, к которым принадлежит пользователь.
id -G username
Это также отображает только идентификатор.
destroyer@andreyex:~$ id -G destroyer 1000 4 24 27 30 46 119 130 131
5. Напечатайте имена вместо числовых идентификаторов
Только числовые идентификаторы могут сбивать с толку. Если вы хотите, чтобы имена, вы можете комбинировать -nопцию -u, -g или -G для отображения имен.
Например, если вы хотите отобразить все группы, к которым принадлежит пользователь, вы можете использовать его следующим образом:
id -nG username
Если мы используем предыдущий пример с параметром -n, вот что он показывает:
destroyer@andreyex:~$ id -nG destroyer destroyer adm cdrom sudo dip plugdev lpadmin lxd sambashare
Бонусный совет: распечатайте настоящие удостоверения личности
Все приведенные выше примеры отображают действующие идентификаторы. Почти все время это будет настоящий ID.
Тем не менее, если вы хотите убедиться, чтобы получить реальный ID, вы можете комбинировать вариант -r с -u, -g или -G.
Это можно использовать так:
id -ru username
Хорошо! Мы думаем, что вы знаете достаточно о команде id сейчас. Если у вас есть вопросы или предложения, не стесняйтесь оставлять комментарии.