РЕШЕНО: Shutdown & reboot (не работает от пользователя)

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Аватара пользователя
devilr
Сообщения: 2504
ОС: Mandriva => Gentoo (~amd64)

РЕШЕНО: Shutdown & reboot

Сообщение devilr »

Доброго времени суток!
В настройках sddm указаны команды выключения и перезагрузки. Как shutdown и reboot, соответственно. Но, для того, чтобы их использовать, нужны права рута.
Я раньше как то не обращал на это внимание, завершая работу уже поздней ночью из консоли. Всё работает и сейчас.
А вот "мышекликанием" из оболочки сделать это почему то нельзя. Я понятия не имею, когда это сломалось.
Как правильно настроить выключение и/или перезагрузку от пользователя?У меня KDE.
Последний раз редактировалось devilr 18.10.2020 00:26, всего редактировалось 2 раза.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
yoricI
Сообщения: 1186
ОС: gentoo fluxbox

Re: Shutdown & reboot

Сообщение yoricI »

В смысле из-под простого оператора shutdown и reboot работают из консоли? А из Х-терминала?
Если ноутбук, то можно кнопкой выключать.
А перезагрузка в gentoo работает по трём кнопкам в консоли даже если никто не зарегистрирован в ней. Про KDE не в курсе.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 2504
ОС: Mandriva => Gentoo (~amd64)

Re: Shutdown & reboot

Сообщение devilr »

yoricI писал:
17.10.2020 18:17
В смысле из-под простого оператора shutdown и reboot работают из консоли? А из Х-терминала?
НЕ работают. Рута хотят. И уж тем более из иксов.
Выключить то я могу. Из консоли. В том числе из под иксов (с помощью sudo, конечно).
А хотелось бы нормального выключения. Мышкой. Оно ведь как то раньше работало.
Да, наверняка, сам сломал. Ещё бы понять, что именно и когда.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1371
ОС: Gentoo

Re: Shutdown & reboot

Сообщение ormorph »

devilr писал(а):
17.10.2020 19:46
НЕ работают. Рута хотят. И уж тем более из иксов.
Ну тут смотря что используется, consolekit, elogind или systemd.
Для каждой есть свои команды для пользователя. Вот тут обновил ебилд oblogout, теперь используется исходник для python3, там в каталоге files, есть варианты конфигов, которые устанавливаются в зависимости от флагов. В конфигах можно посмотреть команды для пользователя. При желании можно использовать oblogout пока не починишь.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 2504
ОС: Mandriva => Gentoo (~amd64)

Re: Shutdown & reboot

Сообщение devilr »

ormorph писал(а):
17.10.2020 21:08
Ну тут смотря что используется, consolekit, elogind или systemd.
Та какая разница то? Команды то будут одинаковые.Shutdown и reboot.
А вот как их может запустить пользователь - это как раз и вопрос?
Если с помощью sudo - так оболочка то пытается команды напрямую вызвать. И обламывается, конечно. Да и как-то неправильно это, я думаю.
Вот только что попробовал calculatelinux в виртуалке запустить - там всё работает. Под тем же KDE...
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1371
ОС: Gentoo

Re: Shutdown & reboot

Сообщение ormorph »

devilr писал(а):
17.10.2020 21:40
Та какая разница то? Команды то будут одинаковые.Shutdown и reboot.
Разница в том, что elogind и consolekit демоны запускаемые с правами рута, которые как раз и могут выполнять функции выключения и перезагрузки, а команды для них можно выполнять обычному пользователю. Ссылку я дал, посмотрите в каталоге files, содержимое конфигов, там есть все примеры.
Например для перезагрузки используя elogind выполнить нужно команду:

Shell

$ loginctl reboot
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 2504
ОС: Mandriva => Gentoo (~amd64)

Re: Shutdown & reboot

Сообщение devilr »

$ loginctl reboot
==== AUTHENTICATING FOR org.freedesktop.login1.reboot ====
Authentication is required for rebooting the system.
Authenticating as: root
Password:
Добавлено (21:55):
Возможно, что я плохо объясняю (русский язык у мене не родной).
Мне НЕ нужны сторонние скрипты или программы.
Мне нужно понять, что я мог сделать, чтобы это в какой то момент отключилось (я про subj)?
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1371
ОС: Gentoo

Re: Shutdown & reboot

Сообщение ormorph »

Хм, а команда:

Shell

$ loginctl list
Показывает запущенные сеансы?
У меня проблем таких нет с elogind, перезагрузка работает норм под обычным пользователем.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 2504
ОС: Mandriva => Gentoo (~amd64)

Re: Shutdown & reboot

Сообщение devilr »

$ loginctl list
No sessions.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1371
ОС: Gentoo

Re: Shutdown & reboot

Сообщение ormorph »

Ну тогда ни чего удивительного, что так происходит. Оконный менеджер является клиентом одной из (elogind, consolekit, systemd).
Так как команда loginctl list, ни чего не показала, то либо используется что то другое(consolekit, systemd), либо что то напортачили с установкой и запуском.
По elogin читать тут.
Т.е. ядро должно иметь соответствующие настройки, и демон elogind должен быть запущен.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 2504
ОС: Mandriva => Gentoo (~amd64)

Re: Shutdown & reboot

Сообщение devilr »

ormorph писал(а):
17.10.2020 22:19
Т.е. ядро должно иметь соответствующие настройки, и демон elogind должен быть запущен.
Демон то запущен и, вроде как, работает. По крайней мере - started. А вот за ядро не подумал, сейчас поковыряю...
P.S. Настойки ядра вроде нормальные, а вот с флагами явно переборщил. Правлю...
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1371
ОС: Gentoo

Re: Shutdown & reboot

Сообщение ormorph »

У меня elogind собран с флагами (acl pam policykit). Но они должны быть по умолчанию включены при профиле desktop.
В Calculate LInux elogind не работало, так как там в ядре не хватало настроек, но там по умолчанию использовался consolekit. Нужно добиться чтобы команда выводила наличие сессии:

Shell

$ loginctl list
SESSION UID USER SEAT TTY
c1 1000 demuser seat0

1 sessions listed.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 2504
ОС: Mandriva => Gentoo (~amd64)

Re: Shutdown & reboot

Сообщение devilr »

Всё получилось. Спасибо за помощь!
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
yoricI
Сообщения: 1186
ОС: gentoo fluxbox

Re: РЕШЕНО: Shutdown & reboot

Сообщение yoricI »

ormorph писал(а):
17.10.2020 21:49
loginctl reboot
И чем это отличается от sudo? Даже больше букв набирать :-)
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1371
ОС: Gentoo

Re: РЕШЕНО: Shutdown & reboot

Сообщение ormorph »

yoricI писал:
18.10.2020 04:59
И чем это отличается от sudo? Даже больше букв набирать :-)
А пароль не забыли? У меня в openbox используется oblogout для этого. Там на кнопки навешаны команды.
Ну и если elogind заработал как надо, то и кнопки перезагрузки и выключения в оконном менеджере тоже должны были заработать.
Спасибо сказали:

Аватара пользователя
yoricI
Сообщения: 1186
ОС: gentoo fluxbox

Re: РЕШЕНО: Shutdown & reboot

Сообщение yoricI »

Так если прописать в /etc/sudoers, то пароль не нужен.
И оформить как псевдоним.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1371
ОС: Gentoo

Re: РЕШЕНО: Shutdown & reboot

Сообщение ormorph »

yoricI писал:
18.10.2020 06:20
Так если прописать в /etc/sudoers, то пароль не нужен.
Только не понятно зачем это нужно. В данном случае нужно было чтобы кнопки заработали. Некоторые sudo выпиливают. Команды для consolekit ещё длиннее будут, тем не менее оно используется.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 2504
ОС: Mandriva => Gentoo (~amd64)

Re: РЕШЕНО: Shutdown & reboot

Сообщение devilr »

ormorph писал(а):
18.10.2020 06:54
Только не понятно зачем это нужно.
Допустим, я, в своё время, прописывал вызов команд layman и emerge без пароля. Чтобы и пароль не вводить каждый раз и рутовую консоль для них не вызывать.
ormorph писал(а):
18.10.2020 06:54
Некоторые sudo выпиливают.
А тут срабатывает некоторая паранойя. Особенно она заметна в ubuntu. Допустим пользовательский пароль короткий, а рута - на 100500 букв и цифр. Рутовый вы вводите раз в тысячелетие, а пользовательский - несколько раз в день. Понятно, что проще утянуть пользовательский. И он, в данном случае, фактически равен рутовому. Поэтому и выпиливают.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
gramozeka
Сообщения: 204
ОС: Slackware-14

Re: РЕШЕНО: Shutdown & reboot

Сообщение gramozeka »

хоть и решено, но внесу свои пять копеек.
Настройка sddm через sudo есть плохо, даже никуда не годно.
Работает это всё через polkitd и решается через простое правило, причём не только для sddm, но и для любого пользователя в системе(в смысле юзера).
хаукак.))
1. пишем простой текстовый файл:
polkit.addRule(function(action, subject) {
if (action.id == "org.kde.fontinst" ||
action.id == "org.kde.kalarm.rtcwake" ||
action.id == "org.kde.kcontrol.kcmclock" ||
action.id == "org.kde.kcontrol.kcmkwallet5" ||
action.id == "org.kde.kcontrol.kcmplymouth" ||
action.id == "org.kde.kcontrol.kcmsddm" ||
action.id == "org.kde.ksysguard.processlisthelper" ||
action.id == "org.kde.ktexteditor.katetextbuffer" ||
action.id == "org.kde.powerdevil.backlighthelper" ||
action.id == "org.kde.powerdevil.discretegpuhelper") {

// log requests
polkit.log("action=" + action);
polkit.log("subject=" + subject);

if (subject.isInGroup("power") ||
subject.user == "sddm") {

polkit.log("Returned YES for subject=" + subject + " requesting action=" + action);
return polkit.Result.YES;
} else {
return polkit.Result.AUTH_ADMIN_KEEP;
}
}
});
обзываем его 40-power.rules (цифра не принципиальна, это последовательность исполнения). Набор правил ака action.id == "org.kde.kalarm.rtcwake" можно изменить по своему желанию, подсмотреть какие из них актуальны в конкретной системе можно в /usr/share/polkit-1/actions/ , где название файла без расширения и есть глобальное action.id, а если заглянуть в сам файл, то конкретные action.id прописаны явным образом, например файл org.freedesktop.login1.policy содержит(в том числе) action.id==org.freedesktop.login1.inhibit-block-shutdown в виде блока :

Код: Выделить всё

<action id="org.freedesktop.login1.inhibit-block-shutdown">
                <description gettext-domain="systemd">Allow applications to inhibit system shutdown</description>
                <message gettext-domain="systemd">Authentication is required for an application to inhibit system shutdown.</message>
                <defaults>
                        <allow_any>no</allow_any>
                        <allow_inactive>yes</allow_inactive>
                        <allow_active>yes</allow_active>
                </defaults>
                <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.inhibit-delay-shutdown org.freedesktop.login1.inhibit-block-sleep org.freedesktop.login1.inhibit-delay-sleep org.freedesktop.login1.inhibit-block-idle</annotate>
        </action>
почитав эти файлы, можно насобирать те правила, которые нужны конкретно вам.
2. Это важно! закидываем его в /etc/polkit-1/rules.d/ И!!! Выставляем ему принадлежность polkitd:

Код: Выделить всё

# chown polkitd:polkitd /etc/polkit-1/rules.d/40-power.rules
так же нужно проверить, чтоб /etc/polkit-1/rules.d/ принадлежал polkitd.
3. В таком виде sddm получит право на перезагрузку\выключение. Если нужно, чтоб и юзер имел эти права, то нужно его добавить в группу power, если её нет то нужно создать.

Код: Выделить всё

# groupadd power
# usermod -a -G power <user_name>
PS//
Вполне вероятно, что такая группа уже существует, более того, существует и подобное правило(пусть похожее), но беда именно с правами.
Файлы и каталоги в /etc/polkit-1 b /usr/share/polkit-1 должны принадлежать polkitd, иначе он не сможет их прочитать и применить.
Последний раз редактировалось gramozeka 18.10.2020 12:22, всего редактировалось 1 раз.
... ну я же просил четыреста капель , а сдесь четыреста две ...
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 2504
ОС: Mandriva => Gentoo (~amd64)

Re: РЕШЕНО: Shutdown & reboot

Сообщение devilr »

gramozeka писал:
18.10.2020 11:56
Файлы и каталоги в /etc/polkit-1 b /usr/share/polkit-1 должны принадлежать polkitd, иначе он не сможет их прочитать и применить.
# ls -l /usr/share/ | grep polkit
drwxr-xr-x 4 root root 4096 июн 1 2014 polkit-1
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1371
ОС: Gentoo

Re: РЕШЕНО: Shutdown & reboot

Сообщение ormorph »

devilr писал(а):
18.10.2020 11:35
Допустим, я, в своё время, прописывал вызов команд layman и emerge без пароля. Чтобы и пароль не вводить каждый раз и рутовую консоль для них не вызывать.
В данном случае я не спорю что может пригодиться. Я на ноуте использую будильник тыц, когда комп засыпает и просыпается в определённое время.
Но использовать sudo для этих команд это извращение. У меня TDE работает норм с elogind и как бы с потреблением проблем нет, что бы использовать sudo.
Вот фотка на rpi4, как видно по gkrellm там потребляет 181 метр:
Spoiler
ИзображениеИзображение
Firefox с несколькими вкладками может увеличить это на 400 мб и более.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 2504
ОС: Mandriva => Gentoo (~amd64)

Re: РЕШЕНО: Shutdown & reboot

Сообщение devilr »

ormorph писал(а):
18.10.2020 12:08
Но использовать sudo для этих команд это извращение.
Для emerge? Да, наверное, но тут каждому - своё. :)
А так, я чуть выше и говорил, что лучше починить сломанное, чем использовать костыли. В моём случае.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
ormorph
Сообщения: 1371
ОС: Gentoo

Re: РЕШЕНО: Shutdown & reboot

Сообщение ormorph »

devilr писал(а):
18.10.2020 12:14
Для emerge? Да, наверное, но тут каждому - своё.
Нет конечно, я имел в виду использовать sudo для выключения/перезагрузки.
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 2504
ОС: Mandriva => Gentoo (~amd64)

Re: РЕШЕНО: Shutdown & reboot

Сообщение devilr »

ormorph писал(а):
18.10.2020 12:17
я имел в виду использовать sudo для выключения/перезагрузки.
Однозначно. Более того, если бы меня это устраивало - этой темы бы не было. :)
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
gramozeka
Сообщения: 204
ОС: Slackware-14

Re: РЕШЕНО: Shutdown & reboot

Сообщение gramozeka »

devilr писал(а):
18.10.2020 12:08
drwxr-xr-x 4 root root 4096 июн 1 2014 polkit-1
ну так напиши правило(пример рабочий, можно использовать как есть) и поменяй права, пример дан.

Код: Выделить всё

# chown -R polkitd:polkitd /etc/polkit-1
# chown -R polkitd:polkitd /usr/share/polkit-1
И да, после этого надо перезагрузить комп, т.к. правила полкита подхватываются автоматически когда стартует d-bus, если без перезагрузки его перезапустить, то как минимум вырубится графика и всё зависнет в непонятках, можно из консоли его(дбас) рестартануть, но проще тупо перезагрузиться.
... ну я же просил четыреста капель , а сдесь четыреста две ...
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 2504
ОС: Mandriva => Gentoo (~amd64)

Re: РЕШЕНО: Shutdown & reboot

Сообщение devilr »

gramozeka писал:
18.10.2020 12:29
ну так напиши правило(пример рабочий, можно использовать как есть) и поменяй права, пример дан.
Эачем? Если работает.
Вообще, совет изменить права в системных каталогах равносильно совету установить права 777 на все каталоги в случае с сайтами. :) Только не обижайтесь, я вас не имею в виду.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
gramozeka
Сообщения: 204
ОС: Slackware-14

Re: РЕШЕНО: Shutdown & reboot

Сообщение gramozeka »

devilr писал(а):
18.10.2020 12:33
совет изменить права в системных каталогах
иногда полезно читать правила установки конкретных приложений от самих разработчиков, т.к. кто лучше понимает логику работы программы?
вот рафинированный пример "как" устанавливается polkit http://www.linuxfromscratch.org/blfs/view/svn/postlfs/polkit.html
стоит обратить внимание на первый блок после слов "There should be a dedicated user and group to take control of the polkitd daemon after it is started. Issue the following commands as the root user:", банальное наблюдение подсказывает - там явно указано кому дать принадлежность каталогу.
Ну а так-то да, согласен, каждый суслик агроном: "...хотели кухню в стиле хай-тэк, а как зашли в магазин, решили - пусть будет хай-так..."
... ну я же просил четыреста капель , а сдесь четыреста две ...
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 17453
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: РЕШЕНО: Shutdown & reboot

Сообщение Bizdelnick »

gramozeka писал:
18.10.2020 12:42
иногда полезно читать правила установки конкретных приложений
Иногда полезно читать FHS. Тогда глупости вроде "поменять права доступа в /usr/..." даже в голову приходить не будут. В BLFS такого и не советуют, насколько я вижу.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
devilr
Сообщения: 2504
ОС: Mandriva => Gentoo (~amd64)

Re: РЕШЕНО: Shutdown & reboot

Сообщение devilr »

gramozeka писал:
18.10.2020 12:42
иногда полезно читать правила установки конкретных приложений от самих разработчиков, т.к. кто лучше понимает логику работы программы?
Ну, в данном случае, именно это приложение вроде как само системное. Однако, ему вполне хватает (и должно хватать) права чтения каталога. И уж точно ему не нужно быть хозяином данного каталога.
А в общем случае, если разработчик системного приложения хочет влиять на безопасность самой системы, устанавливая избыточные права на свои каталоги, то с ним надо проводить разъяснительную беседу. Или, вообще, гнать грязными тряпками из системы.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Спасибо сказали:

Аватара пользователя
gramozeka
Сообщения: 204
ОС: Slackware-14

Re: РЕШЕНО: Shutdown & reboot

Сообщение gramozeka »

Bizdelnick писал:
18.10.2020 12:47
В BLFS такого и не советуют, насколько я вижу.
про /usr согласен. Но речь о "правилах", в смысле файлах, правила с отличными от polkitd правами самим polkitd игнорируются, ибо безопасность.
Хотя я ж не настаиваю, работает через sudo без пароля, так и пущай, оно ж так секьюрно аж до паранойи...))
Добавлено (13:07):
devilr писал(а):
18.10.2020 12:49
устанавливая избыточные права на свои каталоги, то с ним надо проводить разъяснительную беседу. Или, вообще, гнать грязными тряпками из системы.
если рассматривать polkitd, то он вообще никаких прав в системе не имеет, он может только блокировать исполнение dbus'ом некоторых вещей.
А вот давать sudo всем кому нипопадя это ТРУ! согласен.
ps/
хотя да, вопрос с правами тонкая материя, примерно три-четыре инкарнации назад, polkit-1 игнорил все правила без своих прав, сейчас немного поменял свою политику. Возможно я и не прав.
Последний раз редактировалось gramozeka 18.10.2020 13:25, всего редактировалось 1 раз.
... ну я же просил четыреста капель , а сдесь четыреста две ...
Спасибо сказали: