Введение
id
— это утилита командной строки, которая печатает реальные и эффективные идентификаторы пользователей и групп.
Идентификатор синтаксиса команды
Синтаксис команды id
следующий:
id [OPTIONS] [USERNAME]
Если имя пользователя не указано, команда id
отображает информацию о текущем зарегистрированном пользователе.
При вызове без каких-либо параметров id
выводит реальный идентификатор пользователя ( uid
), реальный идентификатор основной группы пользователя ( gid
) и реальные идентификаторы дополнительных групп ( groups
), к которым принадлежит пользователь. Фактический идентификатор пользователя, идентификатор группы и дополнительные идентификаторы групп печатаются только в том случае, если они отличаются от реальных.
id
uid=1000(noviello) gid=1000(noviello) groups=1000(noviello),4(adm),27(sudo),998(docker)
Если SELinux включен, id
также выводит контекст безопасности пользователя ( context
):
uid=1000(noviello) gid=1000(noviello) groups=1000(noviello) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Чтобы получить информацию о другом пользователе, передайте имя пользователя или идентификатор пользователя в качестве аргумента команде id
:
id alice
uid=1000(alice) gid=1000(alice) groups=1000(alice)
Если в системе существует пользователь с именем, равным предоставленному идентификатору, поиск по имени имеет приоритет. При использовании идентификатора пользователя в качестве аргумента перед идентификатором следует поставить символ +
, чтобы идентификатор не интерпретировался как имя.
Например, если у вас есть пользователь с именем 1010
и другой пользователь с идентификатором 1010
, ввод команды с id 1010
отобразит информацию о пользователе с именем 1010
. Чтобы получить информацию о пользователе с идентификатором 1010
, введите id +1010
.
Параметры команды идентификатора
Команда 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
noviello
Выполнение команды id
с параметрами -un
дает тот же вывод, что и whoami
, а вывод id -Gn
эквивалентен выводу команды groups
.
Параметр -r
, ( --real
) можно использовать в сочетании с -u
, -g
и -G
для печати true вместо фактических значений:
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
novielloadmsudodocker
Это может быть полезно при передаче вывода команде, которая может анализировать новые строки.
Вывод
Команда id
выводит информацию о конкретном пользователе или о пользователе, вошедшем в систему в данный момент, если в качестве аргумента не указано имя пользователя или идентификатор.