Команда id в Linux с примерами (вывод реальных и эффективных идентификаторов пользователей и групп)
Сегодня вы узнаете, как использовать команду id в Linux. Очень маленькая команда, но очень полезная.
id означает личность.
Как вы можете понять по самому имени, вы можете использовать команду id для печати информации о пользователях и группах для указанного пользователя ИЛИ для текущего пользователя.
Короче говоря, команда id выводит реальные и эффективные идентификаторы пользователей и групп.
Попробуем разобраться, что такое настоящий и эффективный пользователь.
Настоящий пользователь:
Как вы знаете, авторизованный пользователь должен ввести действительное имя пользователя и пароль для входа в систему Linux, независимо от того, ведется ли она в графическом режиме или в режиме командной строки.
Пользователь может проверить, кто изначально вошел в систему, запустив logname
команда.
Как и в моем случае, я вошел в систему с пользователем с именем helpdesk.
~$ logname
helpdesk
В этом случае, служба поддержки настоящий пользователь.
Эффективный пользователь:
Во время сеанса входа в систему нам может потребоваться переключиться на другого пользователя для выполнения определенных задач.
Например, нам может потребоваться переключиться на пользователя root для выполнения некоторых административных задач, для которых мы используем su
команда, и мы можем использовать whoami
команда для проверки.
~$ su - root
Password:
~$ whoami
root
Давай запустим logname
теперь и посмотрите, что получится.
~$ su - root
Password:
~$ whoami
root
~$ logname
helpdesk
Как видите, logname
Команда по-прежнему показывает, что мы вошли в систему от пользователя службы поддержки.
Следовательно, в этом случае корень эффективный пользователь.
Я думаю, что теперь представление о вашем реальном и эффективном пользователе должно быть прояснено.
Предлагаемое чтение:
Прежде чем продолжить обсуждение этой темы, давайте разберемся с некоторыми техническими терминами.
В Linux по умолчанию каждому пользователю присваивается уникальное числовое значение, называемое UID(Идентификатор пользователя).
Точно так же каждой группе присваивается уникальное числовое значение, называемое GID (Идентификатор группы).
В этой статье я расскажу вам, как легко проверить идентификаторы пользователей и групп, но вам также необходимо знать, где на самом деле находится вся эта информация.
Вся эта информация хранится в /etc/passwd
файл. Вы можете отобразить содержимое этого файла, используя команда кота.
~$ cat /etc/passwd

Ключевые особенности команды id:
- Распечатать идентификатор пользователя (UID) и идентификатор группы (GID)
- Распечатайте только действующий идентификатор пользователя и группы
- Вы можете распечатать имена пользователей / групп вместо идентификационных номеров
- Распечатать все идентификаторы групп (основные и дополнительные)
- Отображать реальный идентификатор вместо действующего идентификатора
- Распечатать контекст безопасности процесса
- Вы можете разделить выходные записи символами NUL
Прежде всего, давайте сосредоточимся на некоторых из наиболее важных опций, которые мы можем использовать с id
.
Параметры | Объяснение |
---|---|
-а | Игнорировать, для совместимости с другими версиями. |
-Z, –context | Вывести только контекст безопасности процесса. |
-g, –group | Распечатать только эффективный идентификатор группы |
-G, –groups | Распечатать все идентификаторы групп |
-n, –name | Выведите имя вместо числа для -ugG |
-r, –real | Напечатайте реальный идентификатор вместо эффективного идентификатора с -ugG |
-u, –user | Распечатать только действующий идентификатор пользователя |
-z, –zero | Разделяйте записи символами NUL, а не пробелами |
–помощь | Отобразить страницу справки по команде id |
–версия | Проверить версию команды id |
Синтаксис:
Вы должны следовать синтаксису, приведенному ниже, чтобы использовать команду id.
id [OPTION]... [USER]
1. Распечатать UID и GID текущего пользователя.
Запуск id
команда без каких-либо параметров распечатает данные о текущем пользователе.
Я вошел в систему под именем пользователя служба поддержки. Теперь, запустив id
командой мы получим следующую информацию:
- UID: ID пользователя –
uid=1000(helpdesk)
- GID: идентификатор группы, который также называется первичной группой –
gid=1000(helpdesk)
- Дополнительная информация о группе или группе Seconday –
groups=1000(helpdesk),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
$ id
uid=1000(helpdesk) gid=1000(helpdesk) groups=1000(helpdesk),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)

2. Распечатайте UID и GID конкретного пользователя.
Чтобы отобразить сведения о конкретном пользователе, передайте имя этого пользователя в качестве аргумента в id
команда.
В этом примере я печатаю сведения о пользователе с именем Аюш.
~$ id ayush
uid=1007(ayush) gid=1011(ayush) groups=1011(ayush)
3. Распечатайте только действующий идентификатор пользователя.
Для печати только эффективный идентификатор пользователя (UID) пользователя передает -u
возможность id
команда. Возьмем несколько примеров.
Введите следующую команду, чтобы распечатать идентификатор пользователя, с которым вы только что вошли в систему.
~$ id -u
1000
Если вы хотите распечатать идентификатор пользователя определенного пользователя, выполните следующую команду. Здесь я печатаю идентификатор пользователя с именем Аюш.
~$ id -u ayush
1001
4. Распечатайте только действующий идентификатор группы.
Для печати только эффективный идентификатор группы (GID) пользователя передается -g
возможность id
команда. Возьмем несколько примеров.
Введите следующую команду, чтобы распечатать идентификатор группы пользователя, с которым вы только что вошли в систему.
~$ id -g
1000
Если вы хотите распечатать идентификатор группы определенного пользователя, выполните следующую команду. Здесь я печатаю идентификатор группы пользователя с именем Аюш.
~$ id -g ayush
1011
Читайте также:
5. Напечатайте имя пользователя вместо числа (UID).
Вы можете распечатать имя пользователя вместо номера UID. для этого передать -n
возможность id
команда, но -n
опция должна использоваться вместе с одной из этих трех опций (-u
, -g
или -G
).
~$ id -un
helpdesk
Примечание: Вы можете получить тот же результат, используя whoami
команда.
~$ whoami
helpdesk
6. Напечатайте название группы вместо номера (GID).
Вы можете распечатать название группы вместо номера GID. для этого передать -n
возможность id
команда, но -n
опция должна использоваться вместе с одной из этих трех опций (-u
, -g
или -G
).
~$ id -gn
helpdesk
7. Распечатайте идентификаторы всех групп.
Распечатать все идентификаторы групп (GID), у которых есть член по имени user1.
~$ id -G user1
1012 1004 1005 1006 1007 1008
Введите следующую команду, чтобы распечатать все идентификаторы групп текущего пользователя.
~$ id -G
1000 4 24 27 30 46 116 126
Выведите все имена групп вместо номеров GID, у которых есть член по имени user1.
~$ id -nG user1
user1 group1 group2 group3 group4 group5
Примечание: Вы можете получить тот же результат, используя groups
команда.
$ groups
user1 group1 group2 group3 group4 group5
8. Напечатайте настоящее удостоверение личности вместо действующего удостоверения личности.
Чтобы напечатать настоящий идентификатор вместо действующего идентификатора, передайте -r
возможность id
команда, но -r
опция должна использоваться вместе с одной из этих трех опций (-u
, -g
, или -G
).
Возьмем несколько примеров:
# Print real UID :
~$ id -ur
1000
# Print real GID :
~$ id -gr
1000
# Print real GID's :
~$ id -Gr
1000 4 24 27 30 46 116 126
Вы можете распечатать имена вместо числовых идентификаторов (UID и GID), объединив -n
вариант.
Возьмем несколько примеров:
# Print real Username :
~$ id -unr
helpdesk
# Print real Group name :
~$ id -gnr
helpdesk
# Print real Group names :
~$ id -Gnr
helpdesk adm cdrom sudo dip plugdev lpadmin sambashare
9. Распечатайте контекст безопасности процесса.
Чтобы распечатать только контекст безопасности процесса, передайте -Z
возможность id
но помните, что это работает только с ядром с поддержкой SELinux.
В противном случае вы получите следующую ошибку.
~$ id -Z
id: --context (-Z) works only on an SELinux-enabled kernel
И если в вашей операционной системе включен SELinux, вы получите следующий результат.
~$ id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
10. Разделите выходные записи символами NUL.
Обычно, когда мы запускаем id
command мы получаем выходные записи, разделенные пробелами.

Вы можете разделить выходные записи символами NUL, а не пробелами, передав -z
возможность id
команда.
~$ id -nGz user1
user1group1group2group3group4group5
11. Проверьте версию команды id.
Проверьте версию команды id с помощью следующей команды.
~$ id --version
id (GNU coreutils) 8.28
12. Справка / доступ к странице руководства
Используйте следующие команды для доступа к странице руководства / странице справки команды id.
~$ id --help
~$ man id
Вы можете посетить следующие веб-сайты, чтобы получить дополнительную информацию о команде id.
Заключение
Надеюсь, вы кое-что узнали из этой статьи.
Я изо всех сил старался включить в это руководство все функции команды id.
Теперь хотелось бы услышать ваши мысли.
Было ли это руководство полезно для вас?
Или, может быть, у вас есть вопросы.
Разве я не включил в это руководство какую-либо команду?
Оставьте комментарий ниже.