Команда logname

Команда 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 выводит реальное имя запустившего ее пользователя.