Автор Тема: Hibernate запрашивает пароль суперпользователя  (Прочитано 7332 раз)

Оффлайн Geidrow

  • Участник
  • *
  • Сообщений: 46
Приветствую всех участников форума.
Настраивал систему (p11 kde) на использование своп-файла, после чего переход в режим suspend to disk требует пароль. Система, судя по системному монитору, использует своп, выход из спящего режима корректно осуществляется.
Настраивал следующим образом.
Спойлер
1. fallocate -l размерm /home/swap
2. mkswap /home/swap
3. chmod 600 /home/swap
4. В /etc/fstab:
/home/swap   swap    swap    defaults        0       0
5. findmnt /home -o UUID -n
6. filefrag -v /home/swap|awk 'NR==4{gsub(/\./,"");print $4;}'
7. Put both in /etc/default/grub, like this (retain existing parameters as needed, of course):
  GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=xxxx resume_offset=yyyyy"
Подставлял полученный вывод из команд 5 и 6.
8. Put both also in /etc/initramfs-tools/conf.d/resume (create the file if it is missing):
  RESUME=UUID=xxxx resume_offset=yyyyy
9. With these changes in place, regenerate both grub config and initramfs with 
update-grub
update-initramfs -k all -u
А вот update-initramfs сообщал об ошибке: bash: update-initramfs: command not found
10. # systemctl edit systemd-logind.service
В открывшемся файле добавить в начало
[Service]       
Environment=SYSTEMD_BYPASS_HIBERNATION_MEMORY_CHECK=1
# grub-mkconfig -o /boot/grub/grub.cfg
Вопрос. А как теперь разрешить непривилегированному пользователю выполнять systemctl hibernate?
В меню Power/Session  доступен режим sleep, но не доступен hibernate.
Спасибо

Оффлайн Nicom

  • Участник
  • *
  • Сообщений: 1 004
Настраивал систему (p11 kde) на использование своп-файла
Зачем, если предполагается гибернэйт в этот своп?

Вы так и так теряете место на диске равное объёму ОЗУ.
Своп в разделе работает быстрее файлового.
Своп в разделе проще прописывается в GRUB.

Уменьшите раздел /home с конца, я надеюсь что /home это у вас отдельный раздел, на размер ОЗУ и создайте нормальный раздел swap.

Файловый своп выгоден только на очень маленьких SSD до 64ГБ, или на виртуальных машинах, где /home это всего-лишь каталог в /. И то, при условии, что гибернейта не будет никогда.

Оффлайн Geidrow

  • Участник
  • *
  • Сообщений: 46
При добавлении оперативной памяти проще файл. На диске несколько ОС Линукс, каждая из которых имеет возможность использовать свой своп.

Оффлайн geher

  • Участник
  • *
  • Сообщений: 34
А разве гибернация работает со свопом в файле?
По-моему, она просто отключается при отсутствии своп раздела.

Оффлайн Geidrow

  • Участник
  • *
  • Сообщений: 46
Работает. Подтверждено практически.

Оффлайн Geidrow

  • Участник
  • *
  • Сообщений: 46
Нашёл 2 совета, но желательно понять корректно ли это для Альт?

/etc/polkit-1/localauthority/50-local.d/99-hibernate.pkla с таким содержимым:

   [Enable hibernate in upower]
   Identity=unix-user:*
   Action=org.freedesktop.upower.hibernate
   ResultActive=yes
   
   [Enable hibernate in logind]
   Identity=unix-user:*
   Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
   ResultActive=yes

Второй.
user_name ALL= NOPASSWD: /usr/bin/systemctl hibernate
« Последнее редактирование: 19.10.2024 18:54:15 от Geidrow »

Оффлайн Geidrow

  • Участник
  • *
  • Сообщений: 46
В первом сообщении писал, что "... update-initramfs сообщал об ошибке: bash: update-initramfs: command not found".
Сделал по инструкции отсюда https://www.altlinux.org/Гибернация
Также требует пароль.

Оффлайн Geidrow

  • Участник
  • *
  • Сообщений: 46
Цитировать
я надеюсь что /home это у вас отдельный раздел
Да

Оффлайн Nicom

  • Участник
  • *
  • Сообщений: 1 004
Я думаю, что в данном случае возможны 2 варианта, либо через настройку sudo, либо через установку suid.
user_name ALL= NOPASSWD: /usr/bin/systemctl hibernate
Это у вас работает?
Если да, то остановитесь на этом варианте.

При добавлении оперативной памяти проще файл. На диске несколько ОС Линукс, каждая из которых имеет возможность использовать свой своп.
Если это реальный компьютер, то нет большого смысла устанавливать несколько Linux систем на один диск, ведь имеются системы виртуализации.
Если это виртуальная система, то нет смысла в файловом swap, так как всегда можно создать новый виртуальный диск необходимого объёма для swap.

На ноутбуке, где я планировал увеличение RAM и предполагал режим гибернации, я изначально создал раздел для swap чуть больше нового объёма RAM.
Я далеко не всё видел в этом мире. Подскажите, если я не прав в своих рассуждениях.
« Последнее редактирование: 19.10.2024 23:59:55 от Nicom »

Оффлайн Geidrow

  • Участник
  • *
  • Сообщений: 46
Цитировать
нет большого смысла устанавливать несколько Linux
Для ядра rt нет модуля nvidia в p11 (возможно, пока), поэтому могут быть другие дистрибутивы (Альт 10, например) для работы со звуком. Это один из сценариев. Для экспериментов (и проверки работы на реальном железе ) нужна ещё одна установка той же версии дистрибутива, что и основной.

« Последнее редактирование: 22.10.2024 15:08:59 от Geidrow »

Оффлайн Geidrow

  • Участник
  • *
  • Сообщений: 46
В стартерките p11 fping работает только от root.
Как перенастроить, чтобы утилита работала от непривилегированного пользователя? Интересно, в каких конфигах при сборке стартеркита прописаны разрешения по всем утилитам?
« Последнее редактирование: 22.10.2024 08:41:36 от Geidrow »

Оффлайн Nicom

  • Участник
  • *
  • Сообщений: 1 004
Как перенастроить, чтобы утилита работала от непривилегированного пользователя?
control
control fping help
control fping public

Оффлайн Geidrow

  • Участник
  • *
  • Сообщений: 46
После control fping public в выводе control команда fping имеет значение public (было restricted, но ни после перелогинивания, ни после перезагрузки не выполняется от непривилегированного пользователя:
 bash: fping: command not found
В чём может быть проблема?

Оффлайн Letmein

  • Участник
  • *
  • Сообщений: 199
bash: fping: command not found
В чём может быть проблема?
Программа лежит в /sbin, которая отсутствует в переменной среды PATH пользователя. Сделайте ссылку на /sbin/fping, например, в /usr/bin.
ln -s /sbin/fping /usr/bin/fping

Оффлайн Geidrow

  • Участник
  • *
  • Сообщений: 46
Цитировать
ссылку на /sbin/fping, например, в /usr/bin
Сработало