РЕШЕНО: Shutdown & reboot (не работает от пользователя)
Модератор: /dev/random
РЕШЕНО: Shutdown & reboot
Доброго времени суток!
В настройках sddm указаны команды выключения и перезагрузки. Как shutdown и reboot, соответственно. Но, для того, чтобы их использовать, нужны права рута.
Я раньше как то не обращал на это внимание, завершая работу уже поздней ночью из консоли. Всё работает и сейчас.
А вот "мышекликанием" из оболочки сделать это почему то нельзя. Я понятия не имею, когда это сломалось.
Как правильно настроить выключение и/или перезагрузку от пользователя?У меня KDE.
В настройках sddm указаны команды выключения и перезагрузки. Как shutdown и reboot, соответственно. Но, для того, чтобы их использовать, нужны права рута.
Я раньше как то не обращал на это внимание, завершая работу уже поздней ночью из консоли. Всё работает и сейчас.
А вот "мышекликанием" из оболочки сделать это почему то нельзя. Я понятия не имею, когда это сломалось.
Как правильно настроить выключение и/или перезагрузку от пользователя?У меня KDE.
Последний раз редактировалось devilr 18.10.2020 00:26, всего редактировалось 2 раза.
Re: Shutdown & reboot
В смысле из-под простого оператора shutdown и reboot работают из консоли? А из Х-терминала?
Если ноутбук, то можно кнопкой выключать.
А перезагрузка в gentoo работает по трём кнопкам в консоли даже если никто не зарегистрирован в ней. Про KDE не в курсе.
Если ноутбук, то можно кнопкой выключать.
А перезагрузка в gentoo работает по трём кнопкам в консоли даже если никто не зарегистрирован в ней. Про KDE не в курсе.
Re: Shutdown & reboot
НЕ работают. Рута хотят. И уж тем более из иксов.
Выключить то я могу. Из консоли. В том числе из под иксов (с помощью sudo, конечно).
А хотелось бы нормального выключения. Мышкой. Оно ведь как то раньше работало.
Да, наверняка, сам сломал. Ещё бы понять, что именно и когда.
Re: Shutdown & reboot
Ну тут смотря что используется, consolekit, elogind или systemd.
Для каждой есть свои команды для пользователя. Вот тут обновил ебилд oblogout, теперь используется исходник для python3, там в каталоге files, есть варианты конфигов, которые устанавливаются в зависимости от флагов. В конфигах можно посмотреть команды для пользователя. При желании можно использовать oblogout пока не починишь.
Спасибо сказали:
Re: Shutdown & reboot
Та какая разница то? Команды то будут одинаковые.Shutdown и reboot.
А вот как их может запустить пользователь - это как раз и вопрос?
Если с помощью sudo - так оболочка то пытается команды напрямую вызвать. И обламывается, конечно. Да и как-то неправильно это, я думаю.
Вот только что попробовал calculatelinux в виртуалке запустить - там всё работает. Под тем же KDE...
Re: Shutdown & reboot
Разница в том, что elogind и consolekit демоны запускаемые с правами рута, которые как раз и могут выполнять функции выключения и перезагрузки, а команды для них можно выполнять обычному пользователю. Ссылку я дал, посмотрите в каталоге files, содержимое конфигов, там есть все примеры.
Например для перезагрузки используя elogind выполнить нужно команду:
Shell
$ loginctl reboot
Спасибо сказали:
Re: Shutdown & reboot
$ loginctl reboot
==== AUTHENTICATING FOR org.freedesktop.login1.reboot ====
Authentication is required for rebooting the system.
Authenticating as: root
Password:
Добавлено (21:55):
Возможно, что я плохо объясняю (русский язык у мене не родной).Мне НЕ нужны сторонние скрипты или программы.
Мне нужно понять, что я мог сделать, чтобы это в какой то момент отключилось (я про subj)?
Re: Shutdown & reboot
Хм, а команда:
Показывает запущенные сеансы?
У меня проблем таких нет с elogind, перезагрузка работает норм под обычным пользователем.
Shell
$ loginctl list
У меня проблем таких нет с elogind, перезагрузка работает норм под обычным пользователем.
Спасибо сказали:
Re: Shutdown & reboot
$ loginctl list
No sessions.
Re: Shutdown & reboot
Ну тогда ни чего удивительного, что так происходит. Оконный менеджер является клиентом одной из (elogind, consolekit, systemd).
Так как команда loginctl list, ни чего не показала, то либо используется что то другое(consolekit, systemd), либо что то напортачили с установкой и запуском.
По elogin читать тут.
Т.е. ядро должно иметь соответствующие настройки, и демон elogind должен быть запущен.
Так как команда loginctl list, ни чего не показала, то либо используется что то другое(consolekit, systemd), либо что то напортачили с установкой и запуском.
По elogin читать тут.
Т.е. ядро должно иметь соответствующие настройки, и демон elogind должен быть запущен.
Спасибо сказали:
Re: Shutdown & reboot
Демон то запущен и, вроде как, работает. По крайней мере - started. А вот за ядро не подумал, сейчас поковыряю...
P.S. Настойки ядра вроде нормальные, а вот с флагами явно переборщил. Правлю...
Re: Shutdown & reboot
У меня elogind собран с флагами (acl pam policykit). Но они должны быть по умолчанию включены при профиле desktop.
В Calculate LInux elogind не работало, так как там в ядре не хватало настроек, но там по умолчанию использовался consolekit. Нужно добиться чтобы команда выводила наличие сессии:
В Calculate LInux elogind не работало, так как там в ядре не хватало настроек, но там по умолчанию использовался consolekit. Нужно добиться чтобы команда выводила наличие сессии:
Shell
$ loginctl list
SESSION UID USER SEAT TTY
c1 1000 demuser seat0
1 sessions listed.
Спасибо сказали:
Re: Shutdown & reboot
Всё получилось. Спасибо за помощь!
Re: РЕШЕНО: Shutdown & reboot
А пароль не забыли? У меня в openbox используется oblogout для этого. Там на кнопки навешаны команды.
Ну и если elogind заработал как надо, то и кнопки перезагрузки и выключения в оконном менеджере тоже должны были заработать.
Re: РЕШЕНО: Shutdown & reboot
Так если прописать в /etc/sudoers, то пароль не нужен.
И оформить как псевдоним.
И оформить как псевдоним.
Re: РЕШЕНО: Shutdown & reboot
Допустим, я, в своё время, прописывал вызов команд layman и emerge без пароля. Чтобы и пароль не вводить каждый раз и рутовую консоль для них не вызывать.
А тут срабатывает некоторая паранойя. Особенно она заметна в ubuntu. Допустим пользовательский пароль короткий, а рута - на 100500 букв и цифр. Рутовый вы вводите раз в тысячелетие, а пользовательский - несколько раз в день. Понятно, что проще утянуть пользовательский. И он, в данном случае, фактически равен рутовому. Поэтому и выпиливают.
Re: РЕШЕНО: Shutdown & reboot
хоть и решено, но внесу свои пять копеек.
Настройка sddm через sudo есть плохо, даже никуда не годно.
Работает это всё через polkitd и решается через простое правило, причём не только для sddm, но и для любого пользователя в системе(в смысле юзера).
хаукак.))
1. пишем простой текстовый файл:
почитав эти файлы, можно насобирать те правила, которые нужны конкретно вам.
2. Это важно! закидываем его в /etc/polkit-1/rules.d/ И!!! Выставляем ему принадлежность polkitd:
так же нужно проверить, чтоб /etc/polkit-1/rules.d/ принадлежал polkitd.
3. В таком виде sddm получит право на перезагрузку\выключение. Если нужно, чтоб и юзер имел эти права, то нужно его добавить в группу power, если её нет то нужно создать.
PS//
Вполне вероятно, что такая группа уже существует, более того, существует и подобное правило(пусть похожее), но беда именно с правами.
Файлы и каталоги в /etc/polkit-1 b /usr/share/polkit-1 должны принадлежать polkitd, иначе он не сможет их прочитать и применить.
Настройка sddm через sudo есть плохо, даже никуда не годно.
Работает это всё через polkitd и решается через простое правило, причём не только для sddm, но и для любого пользователя в системе(в смысле юзера).
хаукак.))
1. пишем простой текстовый файл:
обзываем его 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 в виде блока :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;
}
}
});
Код: Выделить всё
<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
3. В таком виде sddm получит право на перезагрузку\выключение. Если нужно, чтоб и юзер имел эти права, то нужно его добавить в группу power, если её нет то нужно создать.
Код: Выделить всё
# groupadd power
# usermod -a -G power <user_name>
Вполне вероятно, что такая группа уже существует, более того, существует и подобное правило(пусть похожее), но беда именно с правами.
Файлы и каталоги в /etc/polkit-1 b /usr/share/polkit-1 должны принадлежать polkitd, иначе он не сможет их прочитать и применить.
Последний раз редактировалось gramozeka 18.10.2020 12:22, всего редактировалось 1 раз.
... ну я же просил четыреста капель , а сдесь четыреста две ...
Re: РЕШЕНО: Shutdown & reboot
# ls -l /usr/share/ | grep polkit
drwxr-xr-x 4 root root 4096 июн 1 2014 polkit-1
Re: РЕШЕНО: Shutdown & reboot
В данном случае я не спорю что может пригодиться. Я на ноуте использую будильник тыц, когда комп засыпает и просыпается в определённое время.
Но использовать sudo для этих команд это извращение. У меня TDE работает норм с elogind и как бы с потреблением проблем нет, что бы использовать sudo.
Вот фотка на rpi4, как видно по gkrellm там потребляет 181 метр: Firefox с несколькими вкладками может увеличить это на 400 мб и более.
Re: РЕШЕНО: Shutdown & reboot
Для emerge? Да, наверное, но тут каждому - своё.
А так, я чуть выше и говорил, что лучше починить сломанное, чем использовать костыли. В моём случае.
Re: РЕШЕНО: Shutdown & reboot
Однозначно. Более того, если бы меня это устраивало - этой темы бы не было.
Re: РЕШЕНО: Shutdown & reboot
ну так напиши правило(пример рабочий, можно использовать как есть) и поменяй права, пример дан.
Код: Выделить всё
# chown -R polkitd:polkitd /etc/polkit-1
# chown -R polkitd:polkitd /usr/share/polkit-1
... ну я же просил четыреста капель , а сдесь четыреста две ...
Re: РЕШЕНО: Shutdown & reboot
Эачем? Если работает.
Вообще, совет изменить права в системных каталогах равносильно совету установить права 777 на все каталоги в случае с сайтами. Только не обижайтесь, я вас не имею в виду.
Re: РЕШЕНО: Shutdown & reboot
иногда полезно читать правила установки конкретных приложений от самих разработчиков, т.к. кто лучше понимает логику работы программы?
вот рафинированный пример "как" устанавливается 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
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: РЕШЕНО: Shutdown & reboot
Иногда полезно читать FHS. Тогда глупости вроде "поменять права доступа в /usr/..." даже в голову приходить не будут. В BLFS такого и не советуют, насколько я вижу.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: РЕШЕНО: Shutdown & reboot
Ну, в данном случае, именно это приложение вроде как само системное. Однако, ему вполне хватает (и должно хватать) права чтения каталога. И уж точно ему не нужно быть хозяином данного каталога.
А в общем случае, если разработчик системного приложения хочет влиять на безопасность самой системы, устанавливая избыточные права на свои каталоги, то с ним надо проводить разъяснительную беседу. Или, вообще, гнать грязными тряпками из системы.
Re: РЕШЕНО: Shutdown & reboot
про /usr согласен. Но речь о "правилах", в смысле файлах, правила с отличными от polkitd правами самим polkitd игнорируются, ибо безопасность.
Хотя я ж не настаиваю, работает через sudo без пароля, так и пущай, оно ж так секьюрно аж до паранойи...))
Добавлено (13:07):
если рассматривать polkitd, то он вообще никаких прав в системе не имеет, он может только блокировать исполнение dbus'ом некоторых вещей.
А вот давать sudo всем кому нипопадя это ТРУ! согласен.
ps/
хотя да, вопрос с правами тонкая материя, примерно три-четыре инкарнации назад, polkit-1 игнорил все правила без своих прав, сейчас немного поменял свою политику. Возможно я и не прав.
Последний раз редактировалось gramozeka 18.10.2020 13:25, всего редактировалось 1 раз.
... ну я же просил четыреста капель , а сдесь четыреста две ...