Не запрашивать пароль при выходе из режима отключенного экрана.

Вопрос или проблема

Ubuntu 24.04, Gnome fallback Metacity.

Я приостанавливаю систему через час по соображениям безопасности.

Я гашу экран через 15 минут для экономии энергии.

Я хочу, чтобы экран блокировался и требовал пароль после пробуждения из РЕЖИМА ОЖИДАНИЯ.

Я не хочу, чтобы экран блокировался и требовал пароль после пробуждения от ГАСНУЩЕГО ЭКРАНА.

Ничего очевидного или хоть сколько-нибудь ясного в меню dconf-editor. Много советов о не совсем таких же ситуациях.

Спасибо!

ВРЕМЕННОЕ и довольно неудобное решение, в ожидании лучшего.

Цель:

  • Спящий режим через 10 минут бездействия. Приостановка системы через, например, час бездействия.
  • Пробуждение от Гаснущего Экрана при активности клавиатуры или мыши НЕ ДОЛЖНО требовать разблокировки паролем.
  • Пробуждение из Режима Ожидания ДОЛЖНО требовать разблокировку паролем.

Эта настройка (Ubuntu 24.04, Gnome flashback/fallback, Metacity) предлагает два метода Гашения Экрана и Приостановки: A, метод Gnome flashback (GF), который настраивается в Параметры/Энергия и может быть изменён с помощью gsettings и dconf-editor, и B, метод X/Xorg, который конфигурируется в файле xorg.conf и настраивается с помощью команды xset.

GF по умолчанию требует пароль как для Гашения Экрана, так и для Режима Ожидания. Это можно отключить с помощью

gsettings set org.gnome.desktop.lockdown disable-lock-screen true

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

Можно также отключить обработку таймаутов простоя из GF, установив в dconf-editor

org/gnome/gnome-flashback idle-monitor OFF

но тогда вы полностью полагаетесь на X, который, я не смог добиться, чтобы обрабатывал Режим Ожидания.

X не требует пароля для Гашения Экрана. Как я уже говорил, мне не удалось заставить его обрабатывать Режим Ожидания, но я подозреваю, что для этого он также не требует пароля.

Итак, мы можем использовать X для Гашения Экрана и GF для Приостановки.

Проблема в том, что они конфликтуют. GF регулярно обнуляет таймауты, установленные в X.

Как правило, это происходит при активности клавиатуры или мыши после минуты или двух бездействия.

Способ обойти это обнуление — вызывать xset в цикле каждые несколько минут.

Практически.

в Настройках/Энергии:

Установить Гашение Экрана в GF на Никогда

Установить Автоматическую Приостановку в GF на необходимый таймаут

Создать баш-скрипт содержащий

while true
do
   if [[ `xset q` = *Standby:\ 0* ]]
   then
      # xset s off may only need to be done once
      xset s off
      xset dpms 600
      sleep 300
   fi
done

и установить его как приложение для автозапуска. Учтите, что установка таймаута перезапускает отсчёт, поэтому его следует устанавливать только если он был обнулён, иначе он никогда не истечёт, если цикл быстрее таймаута.

В общем, это функционирующий, но достаточно неудовлетворительный способ решения проблемы, и я надеюсь, что есть более подходящее решение, которое я могу принять как лучший ответ.

Перейдите в: Настройки > Конфиденциальность и безопасность > Блокировка экрана
Настройки > Конфиденциальность и безопасность > Блокировка экрана
Отсюда вы можете включить или отключить блокировку экрана при гашении и/или приостановке.

На Ubuntu 24.04 (GNOME), сессия Wayland.

.

Ответ или решение

Принимая во внимание описанные вами условия, вы используете Ubuntu 24.04 с GNOME Flashback (обычно он называют Gnome Fallback) и Metacity, возникает вполне конкретная задача: отключить требование пароля при выходе из режима блэкаута экрана и одновременно обеспечить требование пароля при выходе из режима сна.

Теория

В операционной системе Linux, и в частности в GNOME, управление настройками блокировки экрана осуществляется через несколько механизмов, включая настройки GNOME и настройки X.Org для X-сессий. Два основных сценария для управления энергопотреблением и безопасностью при простоях — это "Блэкаут экрана" и "Сон". Первый полезен для экономии энергии, второй — для полной остановки системы.

GNOME Flashback может управлять обеими функциями в едином интерфейсе настроек, однако множественные комбинации этих настроек могут привести к непредвиденному поведению. GNOME и X.Org могут взаимодействовать, например, GNOME может нулевать таймауты, установленные в настройках X.Org, что добавляет дополнительную сложность.

Пример

Учитывая ваш текущий способ настройки, очевидно, что GNOME требует пароля как для выхода из блэкаута экрана, так и из состояния сна, что не соответствует вашей цели. Вы уже обнаружили, что настройки GNOME можно изменять через dconf-editor или gsettings, однако эти изменения могут быть слишком глобальными и применяться ко всей системе управления экраном.

В текущем примере управление через X.Org позволило бы обойти требование пароля, но потерялась бы возможность автоматического перехода в сон. Ваша промежуточная стратегия с использованием скрипта bash и команды xset работающего в цикле для постоянной проверки и установки таймаутов X.Org демонстрирует, что конфликты между двумя системами можно временно обойти.

Применение

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

  1. Настройки GNOME:

    • Откройте dconf-editor и отключите использование Flashback для блэкаута экрана. Это можно сделать через установку org/gnome/gnome-flashback idle-monitor в false.
    • Не отключайте полностью блокировку экрана в org.gnome.desktop.lockdown, так как это приведет к отключению пароля для обоих процессов.
  2. Использование xset:

    • Убедитесь, что X.Org не требует пароля для блэкаута экрана. Это определенный способ избежать блокировки экрана через команду xset s noblank и xset s off.
    • Избегайте вмешательства GNOME в настройки X, запуская ваш скрипт, чтобы он переустанавливал параметры каждые несколько минут, как вы уже указали.
  3. Автоматизация через Скрипт:

    • Убедитесь, что ваш bash скрипт включен в автозагрузку. Этот скрипт должен выполнять следующий цикл:
      while true
      do
       if [[ `xset q` = *Standby:\ 0* ]]
       then
          xset s off
          xset dpms 600
          sleep 300
       fi
      done
    • Этот скрипт гарантирует, что настройки X не будут сброшены даже при попытке GNOME изменить параметры таймаута.
  4. Изоляция процессов:

    • Рассмотрите возможность использования пользовательских системных сервисов и скриптов для более точного контроля и изоляции функций GNOME и X.Org.
  5. Дополнительные средства:

    • Подумайте о возможности использования сторонних приложений, таких как xscreensaver или light-locker, которые могут предоставить более тонкий контроль над поведением экранной блокировки.

Заключение

Этот подход требует детального управления несколькими элементами и знания о том, как GNOME и X.Org взаимодействуют. Попробуйте склонить баланс в пользу нужной вам функции, сохраняя ее постольку статической, насколько это возможно. Учтите, что описанное влияние GNOME и X с использованием скриптов может привести к неожиданностям или возможным сбоям, поэтому всегда сохраняйте изменения и тестируйте поведение системы при различных условиях.

Оцените материал
Добавить комментарий

Капча загружается...