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 |
Обзор
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
Команда практически не принимает параметров.
Примеры использования
# whoami
root
Следующий пример завершает скрипт, если он запущен с привилегированными правами.
if [ `whoami` == 'root' ]
then
echo "Программа не может быть запущена от root"
exit
fi
--WHOAMI
USER ID: 5
ACCESS ID'S: 5, WORLD
C:\Users\admin>whoami
workgroup\admin
Примечания
- ↑ whoami 2.9.1BSD Manual Page (англ.). Дата обращения: 27 декабря 2012. Архивировано 15 февраля 2015 года.
- ↑ CoreUtils for Windows (англ.). Дата обращения: 25 июля 2020. Архивировано 26 декабря 2003 года.
- ↑ Native Win32 ports of some GNU utilities (англ.). Дата обращения: 25 июля 2020.
- ↑ iRMX™86 INTRODUCTION AND OPERATOR'S REFERENCE MANUAL For Release 6 (англ.) (9 января 2013). Дата обращения: 8 июня 2019.
- ↑ Windows 2000 Resource Kit Tool: Whoami.exe (англ.). Дата обращения: 23 апреля 2008. Архивировано 12 января 2008 года.
- ↑ Windows XP Service Pack 2 Support Tools (англ.). Дата обращения: 11 сентября 2008. Архивировано 21 января 2005 года.
- ↑ whoami.c source file on GitHub reactos/reactos repository. Дата обращения: 28 июля 2019. Архивировано 15 сентября 2025 года.
Литература
- whoami - print effective userid (англ.). Unix man pages. Дата обращения: 24 августа 2011. Архивировано 7 января 2013 года.
- Barrett, Daniel J. Macintosh Terminal Pocket Guide: Take Command of Your Mac : [англ.]. — O'Reilly, 2012. — ISBN 978-1449328986.
- Stanek, William R. Windows Command-Line Administrator's Pocket Consultant, 2nd Edition : [англ.]. — Microsoft Press, 2008. — ISBN 978-0735622623.
Ссылки
- whoami(1) — 4.2BSD General Commands Manual
- whoami(1) — FreeBSD General Commands Manual
- whoami | Microsoft Docs