Кнопка "Заблокировать сессию" не работает #85

Closed
opened 1 year ago by anshn · 19 comments
anshn commented 1 year ago

Визуально ничего не происходит. В списке сессий как был неизменным пользователь, так и остался со статусом active (и в утилите, и в консоли):

image

Визуально ничего не происходит. В списке сессий как был неизменным пользователь, так и остался со статусом active (и в утилите, и в консоли): ![image](/attachments/21bef42b-c041-4726-b208-cfa324bfcf32)
anshn added the ошибка label 1 year ago
anshn commented 1 year ago
Poster

В ubl-settings-services - какие команды выполняются на кнопки "активировать сессию" и "заблокировать сессию"?

loginctl activate
loginctl terminate-session
loginctl lock-session
loginctl unlock-session

@asmeron

loginctl lock-session

Не будет работать с консольными сессиями (если блокировать ssh сессию например)

Таким образом кнопка "Заблокировать сессию" не работает для подключения по ssh и ничего визуально не происходит

Может быть в таблице не хватает колонки "TTY" и при выборе строки с например "pts/3" (подключение по ssh) - кнопка "Заблокировать сессию" становится не активной?

Нашла сообщение из телеги:
Только в дизайне последняя колонка "Seat ID" объединять должна две "Seat" и "TTY"

Но даже если этой командой мы пошли и заблокировали пользователя, который в графике, то в статусе в утилите ничего не меняется (не принимает "online"?):

image

# id 13 сейчас заблокирован
SESSION  UID USER       SEAT  TTY   STATE  IDLE SINCE       
      1 1000 superadmin seat0 -     active no   -           
     10 1000 superadmin -     pts/3 active yes  1h 10min ago
     13 1001 ivanov_ii  seat0 tty8  online no   -           

3 sessions listed.

  • online - сессия пользователя есть и она простаивает
  • active - сессия пользователя в данный момент используется(активна)
  • ... - вероятно там еще есть какие то статусы, их бы тоже в идеале читать (быстро в свободном доступе не нашла)

loginctl activate

Команда, которая позволяет в режиме реального времени моментально переключиться на выбранную сессию
Мне кажется кнопку стоит переименовать в "Переключиться на сессию" и добавить окно с предупреждением:

Вы уверены, что хотите переключиться на сессию ID-10?


loginctl unlock-session

Этой кнопки вообще нет ни в дизайне, ни в утилите. Т.е. сессию заблокировал - а разблокировать не получится.

> В ubl-settings-services - какие команды выполняются на кнопки "активировать сессию" и "заблокировать сессию"? > loginctl activate > loginctl terminate-session > loginctl lock-session > loginctl unlock-session @asmeron 1. ```bash loginctl lock-session ``` **Не будет работать с консольными сессиями (если блокировать ssh сессию например)** Таким образом кнопка "Заблокировать сессию" не работает для подключения по ssh и ничего визуально не происходит Может быть ~~в таблице не хватает колонки "TTY"~~ и при выборе строки с например "pts/3" (подключение по ssh) - кнопка "Заблокировать сессию" становится не активной? > Нашла сообщение из телеги: > Только в дизайне последняя колонка "Seat ID" объединять должна две "Seat" и "TTY" Но даже если этой командой мы пошли и заблокировали пользователя, который в графике, то в статусе в утилите ничего не меняется (не принимает "online"?): ![image](/attachments/757966a7-d585-4d8f-b414-c8dcff4eba80) ```bash # id 13 сейчас заблокирован SESSION UID USER SEAT TTY STATE IDLE SINCE 1 1000 superadmin seat0 - active no - 10 1000 superadmin - pts/3 active yes 1h 10min ago 13 1001 ivanov_ii seat0 tty8 online no - 3 sessions listed. ``` * online - сессия пользователя есть и она простаивает * active - сессия пользователя в данный момент используется(активна) * ... - вероятно там еще есть какие то статусы, их бы тоже в идеале читать (быстро в свободном доступе не нашла) --- 2. ```bash loginctl activate ``` Команда, которая позволяет в режиме реального времени моментально переключиться на выбранную сессию Мне кажется кнопку стоит переименовать в "Переключиться на сессию" и добавить окно с предупреждением: > Вы уверены, что хотите переключиться на сессию **ID-10**? --- 3. ```bash loginctl unlock-session ``` Этой кнопки вообще нет ни в дизайне, ни в утилите. Т.е. сессию заблокировал - а разблокировать не получится.
asmeron commented 1 year ago
Owner
  1. добавить
    а у нас на все команды кнопки имеются
    activate [ID] Activate a session
    lock-session [ID...] Screen lock one or more sessions
    unlock-session [ID...] Screen unlock one or more sessions
    terminate-session ID... Terminate one or more sessions
    kill-session ID... Send signal to processes of a session
  2. согласен
  3. у меня вообще loginctl lock-session не работает и с граф. сессиями, нужно читать почему. Но сделать нужно
3. добавить а у нас на все команды кнопки имеются activate [ID] Activate a session lock-session [ID...] Screen lock one or more sessions unlock-session [ID...] Screen unlock one or more sessions terminate-session ID... Terminate one or more sessions kill-session ID... Send signal to processes of a session 2. согласен 1. у меня вообще loginctl lock-session не работает и с граф. сессиями, нужно читать почему. Но сделать нужно
anshn commented 1 year ago
Poster

у меня вообще loginctl lock-session не работает и с граф. сессиями, нужно читать почему. Но сделать нужно

Работает с граф сессиями, для проверки можешь войти в админа, там же в графике "Сменить пользователя" > авторизоваться под юзером > а дальше как тебе удобнее (я по 1 варианту шла):

Вариант 1. Войти в админа через ctrl+alt+f7
Вариант 2. Сменить пользователя через меню приложений

И либо в утилите нажать "заблокировать" на юзере, либо команду вбить > затем перейти обратно в tty юзера и увидеть что юзер блокнулся

Единственное что я не проверяла и только сейчас подумала - может быть не заблочится, если отключен в xfce хранитель/блокировщик
Ибо вроде как loginctl использует de'шные блокировщики (или нет?), а сторонние блокировщики не могут заблокировать сесиию если в том же хранителе все отрублено

> у меня вообще loginctl lock-session не работает и с граф. сессиями, нужно читать почему. Но сделать нужно Работает с граф сессиями, для проверки можешь войти в админа, там же в графике "Сменить пользователя" > авторизоваться под юзером > а дальше как тебе удобнее (я по 1 варианту шла): Вариант 1. Войти в админа через ctrl+alt+f7 Вариант 2. Сменить пользователя через меню приложений И либо в утилите нажать "заблокировать" на юзере, либо команду вбить > затем перейти обратно в tty юзера и увидеть что юзер блокнулся **Единственное что я не проверяла и только сейчас подумала** - может быть не заблочится, если отключен в xfce хранитель/блокировщик Ибо вроде как loginctl использует de'шные блокировщики (или нет?), а сторонние блокировщики не могут заблокировать сесиию если в том же хранителе все отрублено
asmeron commented 1 year ago
Owner

Нужно проверить, и в ВиКи на утилиту написать

Нужно проверить, и в ВиКи на утилиту написать
anshn commented 1 year ago
Poster

Да, при отключенной блокировке в хранителе - графическая сессия юзера не блокируется

Да, при отключенной блокировке в хранителе - графическая сессия юзера не блокируется
anshn commented 1 year ago
Poster

Пока не принято это, еще в разработке, но пока так:

3 кнопки слева после обновления - это:

  1. Переключиться на сессию - loginctl activate <id>
    Не доступна при выборе строки с сессией в консоли например: "pts/2"
    Не доступна при выборе строки с сессией в которой сейчас идет работа программы (условие на ID текущей сессии: echo $XDG_SESSION_ID и выбранного ID в таблице)
  2. Заблокировать сессию - loginctl lock-session <id>
    Не доступна при выборе строки с сессией в консоли например: "pts/2" т.к.
  3. Завершить сессию - loginctl terminate-session <id>

Не сделала:

  1. Кнопку перезапуска сессии - loginctl не поддерживает перезапуск, а корректный рестарт хз как сделать (и нужна ли она вообще?)
  2. Кнопку разблокировки сессии - loginctl отображает статус заблокированных сессий и сессий "в простое" как "online", т.е. статус одинаков. Я поискала инфу как их отличать - но безуспешно.
  3. Также непонятно надо ли что то делать если у пользователя отключена блокировка экрана. будет ли как то программа это определять и выдавать ошибку о невозможности блокировки?

image

Пока не принято это, еще в разработке, но пока так: 3 кнопки слева после обновления - это: 1. Переключиться на сессию - loginctl activate \<id> Не доступна при выборе строки с сессией в консоли например: "pts/2" Не доступна при выборе строки с сессией в которой сейчас идет работа программы (условие на ID текущей сессии: echo $XDG_SESSION_ID и выбранного ID в таблице) 2. Заблокировать сессию - loginctl lock-session \<id> Не доступна при выборе строки с сессией в консоли например: "pts/2" т.к. 3. Завершить сессию - loginctl terminate-session \<id> Не сделала: 1. Кнопку перезапуска сессии - loginctl не поддерживает перезапуск, а корректный рестарт хз как сделать (и нужна ли она вообще?) 2. Кнопку разблокировки сессии - loginctl отображает статус заблокированных сессий и сессий "в простое" как "online", т.е. статус одинаков. Я поискала инфу как их отличать - но безуспешно. 3. Также непонятно надо ли что то делать если у пользователя отключена блокировка экрана. будет ли как то программа это определять и выдавать ошибку о невозможности блокировки? ![image](/attachments/c952f54f-7f20-4cc9-935a-e6e39d067cb3)
asmeron commented 1 year ago
Owner

Проверки не нужно на определение включенной блокировки экрана. Просто кнопки которые выполняют команды.

Проверки не нужно на определение включенной блокировки экрана. Просто кнопки которые выполняют команды.
anshn commented 1 year ago
Poster

Кнопку разблокировки (loginctl unlock-session <id>) добавила на слайды, она должна быть не активна, если выбрана в таблице сессия подключенная в терминале, например "pts/1", "pts/2"

f7525b712a

Кнопку разблокировки (loginctl unlock-session \<id>) добавила на слайды, она должна быть не активна, если выбрана в таблице сессия подключенная в терминале, например "pts/1", "pts/2" https://gitea.ublinux.ru/anshn/design-ubl-settings-services/commit/f7525b712a564f1f9ec22fd70c500ef758e5a5f3
Collaborator
https://gitea.ublinux.ru/YanTheKaller/ubl-settings-services/commit/99360ddc9441ad8a46d40521f6fa0b70f5bc58b8
anshn commented 1 year ago
Poster

Не обновляется автоматически список после завершения сессии:

image

image

Чтобы список обновился - надо нажать кнопку обновления только. Есть вариант сделать автоматически обновление списка после принятия в диалоговых окнах?

Не обновляется автоматически список после завершения сессии: ![image](/attachments/f6f09b01-c94d-448f-b4b6-509187a6e281) ![image](/attachments/82761162-f366-44a1-a61c-aa8fedad5b1c) Чтобы список обновился - надо нажать кнопку обновления только. Есть вариант сделать автоматически обновление списка после принятия в диалоговых окнах?
Collaborator

Конечно можно, вот только

Конечно можно, вот только
Collaborator

оно УЖЕ сделано и давным-давно

оно УЖЕ сделано и давным-давно
Collaborator

выполнение команды завершается раньше чем сессия пропадает из списка

выполнение команды завершается раньше чем сессия пропадает из списка
Collaborator

aa70f03e0a сделал иначе

https://gitea.ublinux.ru/YanTheKaller/ubl-settings-services/commit/aa70f03e0aaab9254a57f9b90f9c8e689ea07fcd сделал иначе
anshn commented 1 year ago
Poster

Дублирование кнопок в контекстном меню отсутствует:

image

image

Дублирование кнопок в контекстном меню отсутствует: ![image](/attachments/d849a186-dcb7-4d89-a0ab-e3b57208b8f5) ![image](/attachments/78230146-8521-4d15-a02c-e0d69a0a99c5)
Collaborator
https://gitea.ublinux.ru/YanTheKaller/ubl-settings-services/commit/e16cffb7038a5b127fdd704566dbc7e57afc58a6
anshn commented 1 year ago
Poster

Добавь пожалуйста разделитель между кнопкой "обновить" и остальным "переключиться":

image

Добавь пожалуйста разделитель между кнопкой "обновить" и остальным "переключиться": ![image](/attachments/82bd8dad-b23a-402c-a20b-399e52578643)
7.5 KiB
Collaborator
https://gitea.ublinux.ru/YanTheKaller/ubl-settings-services/commit/c4fa2b20acf7b3ef5335faa6a5e6da40528f2739
anshn commented 1 year ago
Poster

Проверила, закрываю

Проверила, закрываю
anshn closed this issue 1 year ago
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: Applications/ubl-settings-services#85
Loading…
There is no content yet.