Команда id в Linux

id — это утилита командной строки, которая выводит реальные и действующие идентификаторы пользователей и групп.

Использование команды id

Синтаксис команды id следующий:

id [OPTIONS] [USERNAME]

Если имя пользователя не указано, команда id отображает информацию о текущем вошедшем в систему пользователе.

При вызове без какой-либо опции id печатает реальный идентификатор пользователя ( uid ), реальный идентификатор основной группы пользователя ( gid ) и реальные идентификаторы дополнительных групп ( groups ), к которым принадлежит пользователь. Действующий идентификатор пользователя, идентификатор группы и идентификаторы дополнительных групп печатаются только в том случае, если они отличаются от реальных.

id
uid=1000(linuxize) gid=1000(linuxize) groups=1000(linuxize),4(adm),27(sudo),998(docker)

Если SELinux включен, то id также выводит контекст безопасности ( context ) пользователя:

uid=1000(linuxize) gid=1000(linuxize) groups=1000(linuxize) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Чтобы получить информацию о другом пользователе, передайте имя пользователя или идентификатор пользователя в качестве аргумента команде id :

id mark
uid=1001(mark) gid=1001(mark) groups=1001(mark),998(docker)

В случае, если в системе существует пользователь с именем, совпадающим с предоставленным идентификатором, поиск имени имеет приоритет. При использовании идентификатора пользователя в качестве аргумента префикс идентификатора с помощью символа + чтобы избежать интерпретации идентификатора как имени.

Например, если у вас есть пользователь с именем 1010 и другой пользователь с идентификатором 1010 , при вводе id 1010 команда отобразит информацию о пользователе с именем 1010 . Чтобы получить информацию о пользователе с ID 1010 , введите id +1010 .

Параметры команды id

Команда id принимает несколько параметров, которые позволяют отображать только определенную информацию. Это полезно при использовании id в сценариях оболочки.

Чтобы распечатать только действующий идентификатор пользователя, используйте параметр -u ( --user ):

id -u 
1000

Параметр -g ( --group ) указывает id выводить только эффективный идентификатор группы:

id -g
1000 4 27 998

Используйте параметр -G ( --groups ), чтобы распечатать эффективные идентификаторы всех групп, к которым принадлежит пользователь :

id -G
1000

Чтобы напечатать имена вместо чисел, используйте параметр -n , --name . Этот параметр можно использовать только в сочетании с -u , -g и -G .

id -un
linuxize

Выполнение команды id с параметрами -un дает тот же результат, что и запуск whoami , а результат id -Gn эквивалентен выходным данным команды groups .

Параметр -r , ( --real ) можно использовать в сочетании с -u , -g и -G для вывода реальных, а не эффективных значений:

id -ur

Чтобы распечатать только контекст безопасности процесса, который обычно является контекстом безопасности пользователя, используйте параметр -Z ( --context ):

id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Если SELinux отключен , id выводит сообщение об ошибке:

id: --context (-Z) works only on an SELinux-enabled kernel

Параметр -z ( --zero ) указывает id ограничивать выходные элементы символом NUL, а не пробелом:

id -znG
linuxizeadmsudodocker

Это может быть полезно при передаче вывода в команду, которая может анализировать символы новой строки.

Выводы

Команда id выводит информацию о данном пользователе или о текущем вошедшем в систему пользователе, если в качестве аргумента не указано имя пользователя или идентификатор.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Оставьте комментарий