Как вернуть текущего активного пользователя / сеанс в графическом сеансе рабочего стола Linux ? [закрыто]

Попробуйте это .. Я использую Fedora 25 в качестве виртуального гостя в VirtualBox v 5.1.16.

В терминале гостевой ОС ..

[root@localhost]# dnf install fedora-upgrade
[root@localhost]# dnf upgrade
[root@localhost]# dnf update kernel*
[root@localhost]# dnf install gcc kernel-devel kernel-headers dkms make bzip2 perl
[root@localhost]# reboot

Затем установите дополнения VirualBox Guest, выйдите из системы и войдите снова.

USB может обнаруживать меня после выполнения следующей команды в приглашении администратора:

[root@localhost]# usermod -a -G vboxsf <User Name>
[root@localhost]# dnf clean all

Затем выйдите из системы и войдите обратно, И перейдите в строку меню Устройства -> USB -> добавить USB, выбрав

Иногда может потребоваться перезагрузка гостевой ОС ..

6
01.01.2019, 16:22
3 ответа

Во многих текущих дистрибутивах сеансы входа в систему (графические и не -графические )управляются logind. Вы можете просмотреть список сеансов, используя

loginctl list-sessions

, а затем отображать свойства каждого сеанса, используя

loginctl show-session ${SESSIONID}

или

loginctl session-status ${SESSIONID}

(замена ${SESSIONID}соответствующим образом );разница между двумя вариантами заключается в том, что show-sessionпредназначен для простого анализа, session-statusпредназначен для потребления человеком. Активные сеансы идентифицируются по их состоянию; вы можете запросить это напрямую, используя

loginctl show-session -p State ${SESSIONID}

, который будет выводить

State=active

для активного сеанса (с ). Полный вывод show-sessionпокажет вам, какой пользователь подключен, какой TTY используется, является ли это удаленным сеансом, графическим сеансом и т. д.

Обратите внимание, что logindможет иметь несколько активных сеансов, если система настроена на несколько рабочих мест или если есть удаленные сеансы.

Собрав все вместе,

for sessionid in $(loginctl list-sessions --no-legend | awk '{ print $1 }')
do loginctl show-session -p Id -p Name -p User -p State -p Type -p Remote $sessionid
done

предоставит всю необходимую информацию, чтобы определить, какие сеансы активны и кто их использует, а

for sessionid in $(loginctl list-sessions --no-legend | awk '{ print $1 }')
do loginctl show-session -p Id -p Name -p User -p State -p Type -p Remote $sessionid | sort
done |
awk -F= '/Name/ { name = $2 } /User/ { user = $2 } /State/ { state = $2 } /Type/ { type = $2 } /Remote/ { remote = $2 } /User/ && remote == "no" && state == "active" && (type == "x11" || type == "wayland") { print user, name }'

распечатает идентификаторы и логины всех активных пользователей с графическими сессиями.

Свойство LockedHintтеперь указывает, заблокирован ли данный сеанс, поэтому

for sessionid in $(loginctl list-sessions --no-legend | awk '{ print $1 }')
do loginctl show-session -p Id -p Name -p User -p State -p Type -p Remote -p LockedHint $sessionid | sort
done |
awk -F= '/Name/ { name = $2 } /User/ { user = $2 } /State/ { state = $2 } /Type/ { type = $2 } /Remote/ { remote = $2 } /LockedHint/ { locked = $2 } /User/ && remote == "no" && state == "active" && (type == "x11" || type == "wayland") { print user, name, locked == "yes" ? "locked" : "unlocked" }'

также указывает, заблокирован ли активный сеанс.

16
27.01.2020, 20:23

Я использую функцию bash, подобную следующей

function Xowner() {
    for pid in $(ps -houid --ppid $(ps -hoppid $(pgrep X))) ; do
        [ "$pid" = "0" ] && continue
        id -n -u $pid
        break
    done
}

Назначение этой функции в основном состоит в том, чтобы выбрать «первый» не -корневой UID родственных процессов Xserver. Подробности см. в man ps. Я полагаю, что если ваш вариант использования потенциально включает несколько X-серверов, вам нужно лучше сосредоточиться на том, с какого из них начать.

0
27.01.2020, 20:23

В большинстве Unix -подобных систем (говорит Википедия)команда

$ whoami

дает вам имя текущего пользователя, выполняющего команду, например.

$ whoami
dessert

$ sudo whoami
root
0
27.01.2020, 20:23

Теги

Похожие вопросы