Есть ли простая альтернатива «кто я» и «логин»?

Я заметил, что RHEL 8 и Fedora 30 неправильно обновляют файл utmp.

В результате такие команды, как «кто я», «последний», «w» и т. Д., Выводят неверные результаты (кто я на самом деле ничего не печатает)

После небольшого поиска, я нашел 'logname', который работал в этом случае, но я читал, что gnome вообще отказывается от поддержки utmp, так что это вопрос времени, пока это тоже не перестанет работать.

Я написал следующий скрипт, который находит логин пользователя (даже если он использует sudo в тот момент, когда он запускает команду), но он слишком сложен, поэтому я ищу альтернативы.

LOGIN_UID=$(cat /proc/self/loginuid)
LOGIN_NAME=$(awk -v val=LOGIN_UID -F ":" '$3==val{print $1}' /etc/passwd)

Есть ли простая альтернатива, которая не основана на правильном обновлении / var / run / utmp?

Всего 1 ответ


попробуй это:

#!/bin/bash
IFS=' ' read -r -a arr <<< "$(ps -o uid=,user= -p $$)"
LOGIN_UID="${arr[0]}"
LOGIN_NAME="${arr[1]}"

Есть идеи?

10000