С чего начать Первые шаги трек · 15 ступеней
Linux Labs

whoami — от чьего имени выполняется команда

3 мин Ubuntu 24.04; GNU coreutils 9.4

Показывает имя пользователя, соответствующее эффективному UID выполняющегося процесса.

Шпаргалка

4 команды Версия для печати
  • whoami эффективный пользователь
  • id -u числовой UID
  • id -un то же имя
  • whoami --help справка

Обзор

whoami сообщает имя учётной записи по эффективному UID процесса. Это ответ на вопрос о полномочиях выполняемой команды, а не о владельце открытого окна.

В обычной сессии student результат — student. После разрешённого запуска через sudo результат может быть другим. Команда не перечисляет группы и не устанавливает, кто первоначально вошёл в систему. Вывод не берётся из переменной USER: переменные окружения можно изменить независимо от полномочий.

Ключи

2

Операционных ключей нет: обычный вызов уже выполняет всю работу. В golden есть только --help и --version. Имя другого пользователя передавать нельзя; сведения о выбранной учётной записи смотри через id student. Успех завершается кодом 0; невозможность получить имя даёт ошибку.

Ключ Что делает Пример
--help Показать справку и завершиться. whoami --help
--version Показать версию coreutils для диагностики различий. whoami --version

Ничего не найдено. Попробуй запрос короче.

Рецепты

3

Проверить полномочия своей сессии

Сопоставь имя с числовым идентификатором. Имя удобно человеку, UID помогает при разборе прав.

bash
whoami
id -u

Проверить контекст sudo

На учебной ВМ sudo разрешён. Этот вызов проверяет только пользователя одной команды и не переводит всю текущую оболочку в root.

bash
sudo whoami

Посмотреть другую учётную запись

Для сведений о student используй id, а не аргумент whoami.

bash
id student

Неполадки

3

Передал имя — получил ошибку

whoami не принимает имя цели. Убери аргумент, если нужна текущая учётная запись; для другой используй id.

bash
whoami

Ожидал student, получил root

Проверь, не находишься ли в привилегированной оболочке. Это не основание менять USER или права файлов.

bash
id

UID есть, имя не определяется

Числовая учётная запись может не иметь доступного соответствия в базе пользователей. Сначала узнай UID, затем проверь запись через getent; не создавай пользователя вслепую.

bash
id -u
getent passwd "$(id -u)"

Опасно

Команда только читает сведения. Ответ root не является разрешением на административные изменения. При автоматизации проверяй код завершения и не используй переменную USER как доказательство полномочий.

См. также

  • users-groups — UID, группы и учётные записи.

  • sudo — смена контекста выполнения.

  • processes — учётные данные процессов.

Загрузка…