Как отключить необходимость аутентификации, когда приложение попросило запретить выключение / приостановку [dублировать]

Я использую следующий скрипт для включения / отключения тачпада.

Использование: toggle_touchpad.sh [on|off]

, если вы запускаете без аргументов, тогда он просто инвертирует текущее состояние сенсорной панели.

[F1]
46
задан 5 August 2010 в 21:11

63 ответа

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

Отредактируйте файл / usr / share / polkit-1 / actions / org.freedesktop.consolekit.policy, используя ваш любимый текстовый редактор. Вам понадобятся права root.

Измените раздел, относящийся к отключению, когда другие регистрируются с

<action id="org.freedesktop.consolekit.system.stop-multiple-users"> <description>Stop the system when multiple users are logged in</description> <message>System policy prevents stopping the system when other users are logged in</message> <defaults> <allow_inactive>no</allow_inactive> <allow_active>auth_admin_keep</allow_active> </defaults> </action>

до

<action id="org.freedesktop.consolekit.system.stop-multiple-users"> <description>Stop the system when multiple users are logged in</description> <message>System policy prevents stopping the system when other users are logged in</message> <defaults> <allow_inactive>no</allow_inactive> <allow_active>yes</allow_active> </defaults> </action>

, а раздел, относящийся к для перезагрузки, когда другие регистрируются с

<action id="org.freedesktop.consolekit.system.restart-multiple-users"> <description>Restart the system when multiple users are logged in</description> <message>System policy prevents restarting the system when other users are logged in</message> <defaults> <allow_inactive>no</allow_inactive> <allow_active>auth_admin_keep</allow_active> </defaults> </action>

до

<action id="org.freedesktop.consolekit.system.restart-multiple-users"> <description>Restart the system when multiple users are logged in</description> <message>System policy prevents restarting the system when other users are logged in</message> <defaults> <allow_inactive>no</allow_inactive> <allow_active>yes</allow_active> </defaults> </action>

. Это позволит вам завершить работу и перезагрузить компьютер, когда несколько пользователей вошли в систему. Хотите ли вы это другой вопрос.

27
ответ дан 25 July 2018 в 07:49

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

Отредактируйте файл / usr / share / polkit-1 / actions / org.freedesktop.consolekit.policy, используя ваш любимый текстовый редактор. Вам понадобятся права root.

Измените раздел, касающийся выключения, когда другие вошли в систему с

  & lt; действие id = "org.freedesktop.consolekit.system.stop  -Несколько пользователей "& GT;  & lt; описание & gt; Остановите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает остановку системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; auth_admin_keep & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

-

  & lt; действие id = "org.freedesktop.consolekit.system.stop-multiple-users" & gt;  & lt; описание & gt; Остановите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает остановку системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; да & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

и раздел, связанный с перезагрузкой, когда другие регистрируются из

  & lt; действие id = "org.freedesktop.consolekit.system.restart-multiple  -Пользователи "& GT;  & lt; описание & gt; Перезапустите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает перезапуск системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; auth_admin_keep & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

to

  & lt; действие id = "org.freedesktop.consolekit.system.restart-multiple-users" & gt;  & lt; описание & gt; Перезапустите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает перезапуск системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; да & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

И это позволит вам выключать и перезагружать компьютер, когда регистрируется несколько пользователей. Если вы хотите сделать это, это другой вопрос.

27
ответ дан 3 August 2018 в 06:17

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

Отредактируйте файл / usr / share / polkit-1 / actions / org.freedesktop.consolekit.policy, используя ваш любимый текстовый редактор. Вам понадобятся права root.

Измените раздел, касающийся выключения, когда другие вошли в систему с

  & lt; действие id = "org.freedesktop.consolekit.system.stop  -Несколько пользователей "& GT;  & lt; описание & gt; Остановите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает остановку системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; auth_admin_keep & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

-

  & lt; действие id = "org.freedesktop.consolekit.system.stop-multiple-users" & gt;  & lt; описание & gt; Остановите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает остановку системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; да & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

и раздел, связанный с перезагрузкой, когда другие регистрируются из

  & lt; действие id = "org.freedesktop.consolekit.system.restart-multiple  -Пользователи "& GT;  & lt; описание & gt; Перезапустите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает перезапуск системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; auth_admin_keep & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

to

  & lt; действие id = "org.freedesktop.consolekit.system.restart-multiple-users" & gt;  & lt; описание & gt; Перезапустите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает перезапуск системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; да & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

И это позволит вам выключать и перезагружать компьютер, когда регистрируется несколько пользователей. Если вы хотите сделать это, это другой вопрос.

27
ответ дан 4 August 2018 в 08:26

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

Отредактируйте файл / usr / share / polkit-1 / actions / org.freedesktop.consolekit.policy, используя ваш любимый текстовый редактор. Вам понадобятся права root.

Измените раздел, касающийся выключения, когда другие вошли в систему с

  & lt; действие id = "org.freedesktop.consolekit.system.stop  -Несколько пользователей "& GT;  & lt; описание & gt; Остановите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает остановку системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; auth_admin_keep & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

-

  & lt; действие id = "org.freedesktop.consolekit.system.stop-multiple-users" & gt;  & lt; описание & gt; Остановите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает остановку системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; да & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

и раздел, связанный с перезагрузкой, когда другие регистрируются из

  & lt; действие id = "org.freedesktop.consolekit.system.restart-multiple  -Пользователи "& GT;  & lt; описание & gt; Перезапустите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает перезапуск системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; auth_admin_keep & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

to

  & lt; действие id = "org.freedesktop.consolekit.system.restart-multiple-users" & gt;  & lt; описание & gt; Перезапустите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает перезапуск системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; да & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

И это позволит вам выключать и перезагружать компьютер, когда регистрируется несколько пользователей. Если вы хотите сделать это, это другой вопрос.

27
ответ дан 5 August 2018 в 15:50

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

Отредактируйте файл / usr / share / polkit-1 / actions / org.freedesktop.consolekit.policy, используя ваш любимый текстовый редактор. Вам понадобятся права root.

Измените раздел, касающийся выключения, когда другие вошли в систему с

  & lt; действие id = "org.freedesktop.consolekit.system.stop  -Несколько пользователей "& GT;  & lt; описание & gt; Остановите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает остановку системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; auth_admin_keep & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

-

  & lt; действие id = "org.freedesktop.consolekit.system.stop-multiple-users" & gt;  & lt; описание & gt; Остановите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает остановку системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; да & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

и раздел, связанный с перезагрузкой, когда другие регистрируются из

  & lt; действие id = "org.freedesktop.consolekit.system.restart-multiple  -Пользователи "& GT;  & lt; описание & gt; Перезапустите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает перезапуск системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; auth_admin_keep & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

to

  & lt; действие id = "org.freedesktop.consolekit.system.restart-multiple-users" & gt;  & lt; описание & gt; Перезапустите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает перезапуск системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; да & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

И это позволит вам выключать и перезагружать компьютер, когда регистрируется несколько пользователей. Если вы хотите сделать это, это другой вопрос.

27
ответ дан 7 August 2018 в 09:01

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

Отредактируйте файл / usr / share / polkit-1 / actions / org.freedesktop.consolekit.policy, используя ваш любимый текстовый редактор. Вам понадобятся права root.

Измените раздел, касающийся выключения, когда другие вошли в систему с

  & lt; действие id = "org.freedesktop.consolekit.system.stop  -Несколько пользователей "& GT;  & lt; описание & gt; Остановите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает остановку системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; auth_admin_keep & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

-

  & lt; действие id = "org.freedesktop.consolekit.system.stop-multiple-users" & gt;  & lt; описание & gt; Остановите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает остановку системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; да & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

и раздел, связанный с перезагрузкой, когда другие регистрируются из

  & lt; действие id = "org.freedesktop.consolekit.system.restart-multiple  -Пользователи "& GT;  & lt; описание & gt; Перезапустите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает перезапуск системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; auth_admin_keep & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

to

  & lt; действие id = "org.freedesktop.consolekit.system.restart-multiple-users" & gt;  & lt; описание & gt; Перезапустите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает перезапуск системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; да & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

И это позволит вам выключать и перезагружать компьютер, когда регистрируется несколько пользователей. Если вы хотите сделать это, это другой вопрос.

27
ответ дан 9 August 2018 в 18:14

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

Отредактируйте файл / usr / share / polkit-1 / actions / org.freedesktop.consolekit.policy, используя ваш любимый текстовый редактор. Вам понадобятся права root.

Измените раздел, касающийся выключения, когда другие вошли в систему с

  & lt; действие id = "org.freedesktop.consolekit.system.stop  -Несколько пользователей "& GT;  & lt; описание & gt; Остановите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает остановку системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; auth_admin_keep & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

-

  & lt; действие id = "org.freedesktop.consolekit.system.stop-multiple-users" & gt;  & lt; описание & gt; Остановите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает остановку системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; да & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

и раздел, связанный с перезагрузкой, когда другие регистрируются из

  & lt; действие id = "org.freedesktop.consolekit.system.restart-multiple  -Пользователи "& GT;  & lt; описание & gt; Перезапустите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает перезапуск системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; auth_admin_keep & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

to

  & lt; действие id = "org.freedesktop.consolekit.system.restart-multiple-users" & gt;  & lt; описание & gt; Перезапустите систему, когда несколько пользователей вошли в & lt; / description & gt;  & lt; message & gt; Системная политика предотвращает перезапуск системы, когда другие пользователи регистрируются в & lt; / message & gt;  & Lt; & по умолчанию GT;  не & л; allow_inactive & GT; нет & л; / allow_inactive & GT;  & Lt; allow_active & GT; да & л; / allow_active & GT;  & Lt; & / по умолчанию GT;  & Lt; / действие & GT;   

И это позволит вам выключать и перезагружать компьютер, когда регистрируется несколько пользователей. Если вы хотите сделать это, это другой вопрос.

27
ответ дан 15 August 2018 в 09:31

Добавить halt и / или перезагрузиться в файл sudoers, назначенный группе / пользователю, который вы хотите разрешить для выполнения этой задачи. Таким образом, вы все равно можете контролировать, кто может завершить работу, но без предоставления полного доступа к машине.

http://linux.byexamples.com/archives/315/how-to-shutdown-and -reboot-без Судо-пароль /

0
ответ дан 25 July 2018 в 07:49

Это работает 14.04. Обновленный вариант предыдущего IMO, правильный ответ Flimm.

sudo mkdir -p /etc/polkit-1/localauthority/50-local.d sudoedit /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown_reboot_suspend.pkla

Вставить это внутри:

[Allow all users to shutdown] Identity=unix-user:* Action=org.freedesktop.login1.power-off-multiple-sessions ResultActive=yes [Allow all users to reboot] Identity=unix-user:* Action=org.freedesktop.login1.reboot-multiple-sessions ResultActive=yes [Allow all users to suspend] Identity=unix-user:* Action=org.freedesktop.login1.suspend-multiple-sessions ResultActive=yes [Allow all users to ignore inhibit of shutdown] Identity=unix-user:* Action=org.freedesktop.login1.power-off-ignore-inhibit ResultActive=yes [Allow all users to ignore inhibit of reboot] Identity=unix-user:* Action=org.freedesktop.login1.reboot-ignore-inhibit ResultActive=yes [Allow all users to ignore inhibit of suspend] Identity=unix-user:* Action=org.freedesktop.login1.suspend-ignore-inhibit ResultActive=yes
4
ответ дан 25 July 2018 в 07:49

HAL, похоже, теперь устарел и не установлен в последних выпусках Ubuntu.

Для управления состоянием питания

вы должны использовать сервисы ConsoleKit и UPower dbus.

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

Перезагрузка:

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart

Suspend:

dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Спящий режим:

dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate

Благодаря Arch Linux ConsoleKit [ ! d2].

Теперь это работает в Precise и Quantal, но не знаю, как долго, поскольку фокус Freedesktop, похоже, смещается из ConsoleKit в systemd. Не знаю, заботится ли Канонич ...

12
ответ дан 25 July 2018 в 07:49

Ответ Ричарда Холлоуэя на самом деле не так, как должно быть предоставлено разрешение PolickKit. Файлы, установленные в /usr/share/polkit-1/actions, не подлежат изменению. Вместо этого вы должны изменить полномочия в /etc/polkit-1/localauthority/50-local.d/.

Вот как вы это делаете для этого вопроса:

Создайте файл с именем /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pkla и отредактируйте его, используя sudoedit, чтобы выглядят следующим образом:

[Allow all users to shutdown] Identity=unix-user:* Action=org.freedesktop.consolekit.system.stop-multiple-users ResultInactive=no ResultActive=yes

Затем создайте еще один файл .pkla в том же каталоге. Используйте любое имя, которое вам нравится, заканчивающееся на .pkla, например, allow_all_users_to_restart.pkla, и заполните его этим содержимым:

[Allow all users to restart] Identity=unix-user:* Action=org.freedesktop.consolekit.system.restart-multiple-users ResultInactive=no ResultActive=yes

Ссылки:

polkit Справочное руководство: pklocalauthority ArchWiki на странице PolicyKit
31
ответ дан 25 July 2018 в 07:49
  • 1
    Это оказалось решением для очень странной проблемы. 12.04 после установки PowerBroker (для проверки подлинности в Active Directory) пользователи не могли перезагружать компьютер или вообще не запускать его с помощью графического интерфейса (ни lightdm, ни сеанс индикатора не работал, он просто возвращался на экран входа в систему.) После добавления этих разрешений policykit, все сработало. – korylprince 3 June 2014 в 22:49
  • 2
    У человека pklocalauthority есть информация в Ubuntu – Konstigt 9 June 2014 в 23:09
  • 3
    Обратите внимание, что имена изменены сейчас! Это от 14.04: / usr / share / polkit-1 / actions $ grep multiple * org.freedesktop.login1.policy: & lt; действие id = & quot; org.freedesktop.login1.power-off-multiple-sessions & quot; & gt; & gt; & gt; & gt; org.freedesktop.login1.policy: & lt; действие id = "org.freedesktop.login1.reboot-multiple-sessions" & gt; & gt; gt; org.freedesktop.login1.policy: & lt; действие id = "org.freedesktop.login1.suspend-multiple-sessions" & gt; & gt; & gt; org.freedesktop.login1.policy: & lt; действие id = "org.freedesktop.login1.hibernate-multiple-sessions" & gt; & gt; & gt; – Konstigt 9 June 2014 в 23:16
  • 4
    Для 16.04, помимо изменений @ Konstigt, для меня файлы должны были находиться в /var/lib/polkit-1/localauthority/50-local.d, а дополнительная строка ResultAny=yes была необходима для обоих файлов. Единственное предупреждение, которое я сейчас получаю, это Failed to set wall message, ignoring: Interactive authentication required., но сейчас выключение и перезапуск выполняются правильно. – sigalor 6 January 2017 в 18:50

Есть лучший способ. Если вы установили dbus-send, вы можете отключиться через dbus, не переходя к привилегиям root.

Я не помню страницы, на которой находится документация, но один пользователь Archlinux понял это. [ ! d2]

Выключение:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \ /org/freedesktop/Hal/devices/computer \ org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

Выключение:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \ /org/freedesktop/Hal/devices/computer \ org.freedesktop.Hal.Device.SystemPowerManagement.Reboot

Приостановить:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \ /org/freedesktop/Hal/devices/computer \ org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:1

Приостановить:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \ /org/freedesktop/Hal/devices/computer \ org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate

С уважением.

16
ответ дан 25 July 2018 в 07:49
  • 1
    Ничего себе, это ... храбрый. Удивительный, но хакерский ... – jathanism 6 August 2010 в 23:46
  • 2
    Shutdown и Reboot, похоже, больше не работают в 11.10 – Mikl 18 December 2011 в 06:45
  • 3
    @Mikl попробуйте установить hal (sudo apt-get install hal) – Epeli 16 July 2012 в 01:14

Невозможно обойти подсказку для пароля суперпользователя при перезагрузке, когда другие пользователи регистрируются не до открытия окна терминала и выдачи команды reboot с правами root:

sudo reboot

Even все еще, если не настроено на обход пароля для учетной записи пользователя, sudo также запросит ваш пароль.

Не беспокойтесь, это ХОРОШИЕ вещи. Перезагрузка должна быть редкими, и простое приглашение пароля администратора случайно запускает вас!

1
ответ дан 25 July 2018 в 07:49
  • 1
    Вы также можете редактировать visudo и не запрашивать пароль пользователя при вводе sudo. – Da1T 5 March 2013 в 01:25

По-видимому, вы можете отключить root из GUI, потому что gdm работает от root. Gnome сообщает gdm о завершении работы, и gdm делает это.

Вы можете сделать что-то подобное со сценарием. Я не уверен, насколько вы удобны с BASH, но я считаю, что можно написать скрипт, который работает от имени root, и когда он получает определенный сигнал, запускает команду shutdown.

Имейте в виду, что это может представлять проблему безопасности.

-1
ответ дан 25 July 2018 в 07:49
  • 1
    Я думаю, что проблема, с которой он, вероятно, столкнется, - это подсказка, которая появляется, советуя другим пользователям еще войти в систему и требуя пароль sudo для включения остановки / перезапуска. – David Thomas 6 August 2010 в 00:51

Я считаю, что это только проблема, когда вы делаете это через командную строку.

Если это ссылка, которая может помочь с вашей проблемой.

0
ответ дан 25 July 2018 в 07:49
  • 1
    Нет, есть всплывающее окно, которое запрашивает пароль администратора, если при закрытии его будет зарегистрирован другой пользователь. Использование gui. – Isaiah 5 August 2010 в 21:41

Я считаю, что это только проблема при выполнении этой команды через командную строку.

Если это ссылка , которая может помочь с вашей проблемой.

0
ответ дан 3 August 2018 в 06:17

По-видимому, вы можете отключить root из GUI, потому что gdm работает от root. Gnome сообщает gdm о завершении работы, и gdm делает это.

Вы можете сделать что-то подобное со сценарием. Я не уверен, насколько вы удобны с BASH, но я считаю, что можно написать скрипт, который работает от имени root, и когда он получает определенный сигнал, запускает команду shutdown.

Имейте в виду, что это может представлять проблему безопасности.

-1
ответ дан 3 August 2018 в 06:17

Невозможно обойти подсказку для пароля суперпользователя при перезагрузке, в то время как другие пользователи регистрируются, не открывая окно терминала и выдавая команду reboot как root:

  ]  sudo reboot  

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

Не беспокойтесь, это ХОРОШИЕ вещи. Перезагрузка должна быть редкими, и простая подсказка пароля администратора автоматически спасает вас!

1
ответ дан 3 August 2018 в 06:17

Есть лучший способ. Если вы установили dbus-send, вы можете отключиться через dbus без необходимости перерастания в корневые привилегии.

Я не помню страницы, на которой находится документация, но один пользователь Archlinux понял это. [ ! d9]

Выключение:

  dbus-send --system --print-reply --dest = org.freedesktop.Hal \ / org / freedesktop  / Hal / devices / computer \ org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown  

Перезагрузка:

  dbus-  send -system -print-reply -dest = org.freedesktop.Hal \ / org / freedesktop / Hal / devices / computer \ org.freedesktop.Hal.Device.SystemPowerManagement.Reboot  

Suspend:

  dbus-send --system --print-reply --dest = org.freedesktop.Hal \ / org / freedesktop / Hal / устройства  / computer \ org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32: 1  

Спящий режим:

  dbus-send  --system --print-reply --dest = org.freedesktop.Hal \ / org / freedesktop / Hal / devices / computer \ org.fr  eedesktop.Hal.Device.SystemPowerManagement.Hibernate  

С уважением.

16
ответ дан 3 August 2018 в 06:17

Ответ Ричарда Холлоуэя на самом деле не является способом предоставления полномочий PolickKit. Файлы, установленные в / usr / share / polkit-1 / actions , не подлежат изменению. Вместо этого вы должны изменить полномочия в разделе /etc/polkit-1/localauthority/50-local.d / .

Вот как вы это делаете по этому вопросу:

Создайте файл с именем /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pkla и отредактируйте его, используя sudoedit , чтобы выглядеть так:

  [Разрешить всем пользователям отключать] Identity = unix-user: * Action = org.freedesktop.consolekit.system.stop-multiple-users ResultInactive = no ResultActive = yes  [  ! d19] 

Затем создайте другой файл .pkla в том же каталоге. Используйте любое имя, которое вам нравится, заканчивая на .pkla , например, allow_all_users_to_restart.pkla , и заполните его этим содержимым:

  [Разрешить  все пользователи для перезапуска] Identity = unix-user: * Action = org.freedesktop.consolekit.system.restart-multiple-users ResultInactive = no ResultActive = yes  

Ссылки:

31
ответ дан 3 August 2018 в 06:17

HAL, похоже, теперь устарел и не установлен в последних версиях Ubuntu.

Для управления состоянием питания вы должны использовать ConsoleKit и UPower службы dbus

Shutdown:

  dbus-send --system --print-reply --dest = "org.freedesktop.ConsoleKit" / org / freedesktop / ConsoleKit / Manager org  .freedesktop.ConsoleKit.Manager.Stop  

Перезагрузка:

  dbus-send --system --print-reply --dest = "org.freedesktop  .ConsoleKit "/ org / freedesktop / ConsoleKit / Manager org.freedesktop.ConsoleKit.Manager.Restart  

Приостановить:

  dbus-send --system -  -print-reply -dest = "org.freedesktop.UPower" / org / freedesktop / UPower org.freedesktop.UPower.Suspend  

Спящий режим:

  dbus-send --system --print-reply --dest = "org.freedesktop.UPower" / org / freedesktop / UPower org.freedesktop.UPower.Hibernate  

Благодаря Arch Linux forums .

Сейчас это работает в Precise и Quantal, но не знаю, для сколько времени фокус Freedesktop, кажется, смещен от ConsoleKit к systemd. Не знаю, заботится ли Канонич ...

12
ответ дан 3 August 2018 в 06:17

Это работает 14.04. Обновленный вариант предыдущего, IMO, исправьте ответ Flimm .

  sudo mkdir -p /etc/polkit-1/localauthority/50-local.d sudoedit  /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown_reboot_suspend.pkla  

Вставить это внутри:

  [Разрешить всем пользователям отключать]  Identity = unix-user: * Action = org.freedesktop.login1.power-off-multiple-sessions ResultActive = yes [Разрешить всем пользователям перезагружаться] Identity = unix-user: * Action = org.freedesktop.login1.reboot-multiple  -sessions ResultActive = yes [Разрешить всем пользователям приостанавливать] Identity = unix-user: * Action = org.freedesktop.login1.suspend-multiple-sessions ResultActive = yes [Разрешить всем пользователям игнорировать запрет выключения] Identity = unix-user  : * Action = org.freedesktop.login1.power-off-ignore-inhibit ResultActive = yes [Разрешить всем пользователям игнорировать запрет перезагрузки] Identity = unix-user: * Action = org.freedesktop.login1.reboot-ignore-inhibit  ResultActive = yes [Разрешить всем пользователям игнорировать запрет приостановки] Identity = unix-user  : * Действие = org.freedesktop.login1.suspend-ignore-inhibit ResultActive = yes  
4
ответ дан 3 August 2018 в 06:17

Добавить остановку и / или перезагрузку в файл sudoers, присвоенный группе / пользователю, который вы хотите разрешить для выполнения этой задачи. Таким образом, вы все равно можете контролировать, кто может завершить работу, но не предоставит им полный корневой доступ к машине ..

http://linux.byexamples.com/archives/315/how-to- выключения, и перезагрузится-без Судо-пароля /

0
ответ дан 3 August 2018 в 06:17

Я считаю, что это только проблема при выполнении этой команды через командную строку.

Если это ссылка , которая может помочь с вашей проблемой.

0
ответ дан 4 August 2018 в 08:26

По-видимому, вы можете отключить root из GUI, потому что gdm работает от root. Gnome сообщает gdm о завершении работы, и gdm делает это.

Вы можете сделать что-то подобное со сценарием. Я не уверен, насколько вы удобны с BASH, но я считаю, что можно написать скрипт, который работает от имени root, и когда он получает определенный сигнал, запускает команду shutdown.

Имейте в виду, что это может представлять проблему безопасности.

-1
ответ дан 4 August 2018 в 08:26

Невозможно обойти подсказку для пароля суперпользователя при перезагрузке, в то время как другие пользователи регистрируются, не открывая окно терминала и выдавая команду reboot как root:

  ]  sudo reboot  

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

Не беспокойтесь, это ХОРОШИЕ вещи. Перезагрузка должна быть редкими, и простая подсказка пароля администратора автоматически спасает вас!

1
ответ дан 4 August 2018 в 08:26

Есть лучший способ. Если вы установили dbus-send, вы можете отключиться через dbus без необходимости перерастания в корневые привилегии.

Я не помню страницы, на которой находится документация, но один пользователь Archlinux понял это. [ ! d9]

Выключение:

  dbus-send --system --print-reply --dest = org.freedesktop.Hal \ / org / freedesktop  / Hal / devices / computer \ org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown  

Перезагрузка:

  dbus-  send -system -print-reply -dest = org.freedesktop.Hal \ / org / freedesktop / Hal / devices / computer \ org.freedesktop.Hal.Device.SystemPowerManagement.Reboot  

Suspend:

  dbus-send --system --print-reply --dest = org.freedesktop.Hal \ / org / freedesktop / Hal / устройства  / computer \ org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32: 1  

Спящий режим:

  dbus-send  --system --print-reply --dest = org.freedesktop.Hal \ / org / freedesktop / Hal / devices / computer \ org.fr  eedesktop.Hal.Device.SystemPowerManagement.Hibernate  

С уважением.

16
ответ дан 4 August 2018 в 08:26

Ответ Ричарда Холлоуэя на самом деле не является способом предоставления полномочий PolickKit. Файлы, установленные в / usr / share / polkit-1 / actions , не подлежат изменению. Вместо этого вы должны изменить полномочия в разделе /etc/polkit-1/localauthority/50-local.d / .

Вот как вы это делаете по этому вопросу:

Создайте файл с именем /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pkla и отредактируйте его, используя sudoedit , чтобы выглядеть так:

  [Разрешить всем пользователям отключать] Identity = unix-user: * Action = org.freedesktop.consolekit.system.stop-multiple-users ResultInactive = no ResultActive = yes  [  ! d19] 

Затем создайте другой файл .pkla в том же каталоге. Используйте любое имя, которое вам нравится, заканчивая на .pkla , например, allow_all_users_to_restart.pkla , и заполните его этим содержимым:

  [Разрешить  все пользователи для перезапуска] Identity = unix-user: * Action = org.freedesktop.consolekit.system.restart-multiple-users ResultInactive = no ResultActive = yes  

Ссылки:

31
ответ дан 4 August 2018 в 08:26

HAL, похоже, теперь устарел и не установлен в последних версиях Ubuntu.

Для управления состоянием питания вы должны использовать ConsoleKit и UPower службы dbus

Shutdown:

  dbus-send --system --print-reply --dest = "org.freedesktop.ConsoleKit" / org / freedesktop / ConsoleKit / Manager org  .freedesktop.ConsoleKit.Manager.Stop  

Перезагрузка:

  dbus-send --system --print-reply --dest = "org.freedesktop  .ConsoleKit "/ org / freedesktop / ConsoleKit / Manager org.freedesktop.ConsoleKit.Manager.Restart  

Приостановить:

  dbus-send --system -  -print-reply -dest = "org.freedesktop.UPower" / org / freedesktop / UPower org.freedesktop.UPower.Suspend  

Спящий режим:

  dbus-send --system --print-reply --dest = "org.freedesktop.UPower" / org / freedesktop / UPower org.freedesktop.UPower.Hibernate  

Благодаря Arch Linux forums .

Сейчас это работает в Precise и Quantal, но не знаю, для сколько времени фокус Freedesktop, кажется, смещен от ConsoleKit к systemd. Не знаю, заботится ли Канонич ...

12
ответ дан 4 August 2018 в 08:26

Это работает 14.04. Обновленный вариант предыдущего, IMO, исправьте ответ Flimm .

  sudo mkdir -p /etc/polkit-1/localauthority/50-local.d sudoedit  /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown_reboot_suspend.pkla  

Вставить это внутри:

  [Разрешить всем пользователям отключать]  Identity = unix-user: * Action = org.freedesktop.login1.power-off-multiple-sessions ResultActive = yes [Разрешить всем пользователям перезагружаться] Identity = unix-user: * Action = org.freedesktop.login1.reboot-multiple  -sessions ResultActive = yes [Разрешить всем пользователям приостанавливать] Identity = unix-user: * Action = org.freedesktop.login1.suspend-multiple-sessions ResultActive = yes [Разрешить всем пользователям игнорировать запрет выключения] Identity = unix-user  : * Action = org.freedesktop.login1.power-off-ignore-inhibit ResultActive = yes [Разрешить всем пользователям игнорировать запрет перезагрузки] Identity = unix-user: * Action = org.freedesktop.login1.reboot-ignore-inhibit  ResultActive = yes [Разрешить всем пользователям игнорировать запрет приостановки] Identity = unix-user  : * Действие = org.freedesktop.login1.suspend-ignore-inhibit ResultActive = yes  
4
ответ дан 4 August 2018 в 08:26

Другие вопросы по тегам:

Похожие вопросы: