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

Closed
opened 9 months ago by anshn · 19 comments
anshn commented 9 months ago
Collaborator

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

image

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

В 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 ``` Этой кнопки вообще нет ни в дизайне, ни в утилите. Т.е. сессию заблокировал - а разблокировать не получится.
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 9 months ago
Poster
Collaborator

у меня вообще 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'шные блокировщики (или нет?), а сторонние блокировщики не могут заблокировать сесиию если в том же хранителе все отрублено
Owner

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

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

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

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

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

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)
Owner

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

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

Кнопку разблокировки (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 8 months ago
Poster
Collaborator

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

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 8 months ago
Poster
Collaborator

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

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 8 months ago
Poster
Collaborator

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

image

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

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

Проверила, закрываю
anshn closed this issue 8 months 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.