Whoami

whoami (собранное из английского выражения «who am I?» — «кто я?») — простая команда в Unix и Unix-подобных операционных системах, а также в других POSIX-совместимых системах. Она предназначена исключительно для отображения фактического имени пользователя (username) текущей сессии. Часто используется в shell-скриптах для проверки, что сервисы запускаются от нужного пользователя (например, Postgres), либо для предотвращения запуска некоторых процессов с привилегированными правами.

Команда также присутствует в Microsoft Windows начиная с Windows Server 2003, Intel iRMX 86 и на ReactOS.

Общие сведения
whoami
Тип утилита
Разработчики Bill Joy, Richard Mlynarik, Intel, Microsoft, участники ReactOS, Novell
Операционные системы Unix, мультиплатформенное ПО, iRMX 86, ReactOS, NetWare
Лицензия BSD: BSD License
coreutils: GPLv3
iRMX 86, Windows, NetWare: проприетарное Коммерческое программное обеспечение
ReactOS: GPLv2

Обзор

undefined

whoami выводит тот же результат, что и команда Unix id -un. В Unix-подобных ОС результат этой команды может отличаться от значения переменной, поскольку whoami показывает имя пользователя, от которого выполняется процесс, а — имя пользователя, использованное для входа в систему. Например, если пользователь вошёл как «John», а затем через su переключился на «root», то выведет root, а — John. Это связано с тем, что команда su по умолчанию не запускает shell как login-shell.

Первые версии были реализованы в 2.9 BSD как сокращение от who am i — способ вызова команды who для вывода идентификации вошедшего пользователя. Эту версию разработал Bill Joy[1].

Версия GNU написана Richard Mlynarik и входит в состав пакета GNU Core Utilities (coreutils).

Для Microsoft Windows команда доступна отдельным пакетом в рамках GnuWin32[2] и в наборе UnxUtils — нативных Win32-портов распространённых утилит GNU[3].

В Intel iRMX 86 эта команда выводит список актуальных пользователей и связанные с ними права доступа[4].

Команда также предлагалась в Resource Kit для Windows 2000[5] и в составе SP2 Support Tools для Windows XP[6].

Для ReactOS программа была разработана Исмаэлем Феррерасом Моресуэласом и распространяется под лицензией GPLv2[7].

Команда также была доступна в NetWare — размещалась в публичной директории файлового сервера; она позволяла получить текущие подключения сервер-рабочая станция и соответствующие имена пользователей.

Синтаксис

 whoami

Команда практически не принимает параметров.

Примеры использования

Unix, Unix-подобные системы

# whoami
root

Следующий пример завершает скрипт, если он запущен с привилегированными правами.

if [ `whoami` == 'root' ] 
  then    
    echo "Программа не может быть запущена от root"    
    exit
fi

Intel iRMX 86

--WHOAMI
USER ID: 5
ACCESS ID'S: 5, WORLD

Windows, ReactOS

C:\Users\admin>whoami
workgroup\admin

Примечания

  1. whoami 2.9.1BSD Manual Page (англ.). Дата обращения: 27 декабря 2012. Архивировано 15 февраля 2015 года.
  2. CoreUtils for Windows (англ.). Дата обращения: 25 июля 2020. Архивировано 26 декабря 2003 года.
  3. Native Win32 ports of some GNU utilities (англ.). Дата обращения: 25 июля 2020.
  4. iRMX™86 INTRODUCTION AND OPERATOR'S REFERENCE MANUAL For Release 6 (англ.) (9 января 2013). Дата обращения: 8 июня 2019.
  5. Windows 2000 Resource Kit Tool: Whoami.exe (англ.). Дата обращения: 23 апреля 2008. Архивировано 12 января 2008 года.
  6. Windows XP Service Pack 2 Support Tools (англ.). Дата обращения: 11 сентября 2008. Архивировано 21 января 2005 года.
  7. whoami.c source file on GitHub reactos/reactos repository. Дата обращения: 28 июля 2019. Архивировано 15 сентября 2025 года.

Литература

Ссылки

Категории