Команда logname позволяет задействовать одноименную утилиту, предназначенную для вывода имени запустившего ее пользователя. Утилита читает системный файл /var/run/utmp или /etc/utmp и выводит имя текущего пользователя. В отличие от таких утилит, как whoami и id, она не выводит имя пользователя, соответствующее его эффективному идентификатору. Таким образом, она может вывести имя вызвавшего ее пользователя даже в том случае, если она была вызвана посредством утилиты sudo. Вообще, она может оказаться крайне полезной при разработке сценариев для администрирования системы.
Базовый синтаксис команды выглядит следующим образом:
$ logname [параметры]
Утилита поддерживает параметры, которые едва ли понадобятся рядовому пользователю. По сути, она поддерживает два параметра, а именно, параметр --help для вывода справочной информации и параметр --version для вывода номера ее версии.
Для вывода имени запустившего утилиту пользователя достаточно использовать ее без каких-либо дополнительных параметров:
$ logname
alex
В результате будет выведено имя запустившего утилиту пользователя. А что будет, если изменить эффективный идентификатор пользователя? Давайте воспользуемся для этого утилитой sudo:
$ sudo logname
[sudo] пароль для alex:
alex
$ sudo whoami
root
$ sudo id -un
root
В отличие от утилит whoami и id, утилита logname выводит реальное имя запустившего ее пользователя.