Я использую следующий скрипт для включения / отключения тачпада.
Использование: toggle_touchpad.sh [on|off]
, если вы запускаете без аргументов, тогда он просто инвертирует текущее состояние сенсорной панели.
[F1]Вам не нужно обходное решение, просто измените политику, чтобы вы могли отключиться без аутентификации в качестве администратора для выключения и перезагрузки, когда несколько пользователей вошли в систему.
Отредактируйте файл / 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>
. Это позволит вам завершить работу и перезагрузить компьютер, когда несколько пользователей вошли в систему. Хотите ли вы это другой вопрос.
Вам не нужен обходной путь, просто измените политику, чтобы вы могли отключиться без проверки подлинности как администратора для выключения и перезагрузки, когда несколько пользователей вошли в систему.
Отредактируйте файл / 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;
И это позволит вам выключать и перезагружать компьютер, когда регистрируется несколько пользователей. Если вы хотите сделать это, это другой вопрос.
Вам не нужен обходной путь, просто измените политику, чтобы вы могли отключиться без проверки подлинности как администратора для выключения и перезагрузки, когда несколько пользователей вошли в систему.
Отредактируйте файл / 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;
И это позволит вам выключать и перезагружать компьютер, когда регистрируется несколько пользователей. Если вы хотите сделать это, это другой вопрос.
Вам не нужен обходной путь, просто измените политику, чтобы вы могли отключиться без проверки подлинности как администратора для выключения и перезагрузки, когда несколько пользователей вошли в систему.
Отредактируйте файл / 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;
И это позволит вам выключать и перезагружать компьютер, когда регистрируется несколько пользователей. Если вы хотите сделать это, это другой вопрос.
Вам не нужен обходной путь, просто измените политику, чтобы вы могли отключиться без проверки подлинности как администратора для выключения и перезагрузки, когда несколько пользователей вошли в систему.
Отредактируйте файл / 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;
И это позволит вам выключать и перезагружать компьютер, когда регистрируется несколько пользователей. Если вы хотите сделать это, это другой вопрос.
Вам не нужен обходной путь, просто измените политику, чтобы вы могли отключиться без проверки подлинности как администратора для выключения и перезагрузки, когда несколько пользователей вошли в систему.
Отредактируйте файл / 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;
И это позволит вам выключать и перезагружать компьютер, когда регистрируется несколько пользователей. Если вы хотите сделать это, это другой вопрос.
Вам не нужен обходной путь, просто измените политику, чтобы вы могли отключиться без проверки подлинности как администратора для выключения и перезагрузки, когда несколько пользователей вошли в систему.
Отредактируйте файл / 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;
И это позволит вам выключать и перезагружать компьютер, когда регистрируется несколько пользователей. Если вы хотите сделать это, это другой вопрос.
Добавить halt и / или перезагрузиться в файл sudoers, назначенный группе / пользователю, который вы хотите разрешить для выполнения этой задачи. Таким образом, вы все равно можете контролировать, кто может завершить работу, но без предоставления полного доступа к машине.
http://linux.byexamples.com/archives/315/how-to-shutdown-and -reboot-без Судо-пароль /
Это работает 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
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. Не знаю, заботится ли Канонич ...
Ответ Ричарда Холлоуэя на самом деле не так, как должно быть предоставлено разрешение 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
Есть лучший способ. Если вы установили 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
С уважением.
Невозможно обойти подсказку для пароля суперпользователя при перезагрузке, когда другие пользователи регистрируются не до открытия окна терминала и выдачи команды reboot с правами root:
sudo reboot
Even все еще, если не настроено на обход пароля для учетной записи пользователя, sudo также запросит ваш пароль.
Не беспокойтесь, это ХОРОШИЕ вещи. Перезагрузка должна быть редкими, и простое приглашение пароля администратора случайно запускает вас!
По-видимому, вы можете отключить root из GUI, потому что gdm работает от root. Gnome сообщает gdm о завершении работы, и gdm делает это.
Вы можете сделать что-то подобное со сценарием. Я не уверен, насколько вы удобны с BASH, но я считаю, что можно написать скрипт, который работает от имени root, и когда он получает определенный сигнал, запускает команду shutdown.
Имейте в виду, что это может представлять проблему безопасности.
Я считаю, что это только проблема, когда вы делаете это через командную строку.
Если это ссылка, которая может помочь с вашей проблемой.
Я считаю, что это только проблема при выполнении этой команды через командную строку.
По-видимому, вы можете отключить root из GUI, потому что gdm работает от root. Gnome сообщает gdm о завершении работы, и gdm делает это.
Вы можете сделать что-то подобное со сценарием. Я не уверен, насколько вы удобны с BASH, но я считаю, что можно написать скрипт, который работает от имени root, и когда он получает определенный сигнал, запускает команду shutdown.
Имейте в виду, что это может представлять проблему безопасности.
Невозможно обойти подсказку для пароля суперпользователя при перезагрузке, в то время как другие пользователи регистрируются, не открывая окно терминала и выдавая команду reboot
как root:
] sudo reboot
Даже если вы не настроили на обход пароля для своей учетной записи пользователя, sudo
также запросит ваш пароль.
Не беспокойтесь, это ХОРОШИЕ вещи. Перезагрузка должна быть редкими, и простая подсказка пароля администратора автоматически спасает вас!
Есть лучший способ. Если вы установили 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
С уважением.
Ответ Ричарда Холлоуэя на самом деле не является способом предоставления полномочий 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
Ссылки:
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. Не знаю, заботится ли Канонич ...
Это работает 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
Добавить остановку и / или перезагрузку в файл sudoers, присвоенный группе / пользователю, который вы хотите разрешить для выполнения этой задачи. Таким образом, вы все равно можете контролировать, кто может завершить работу, но не предоставит им полный корневой доступ к машине ..
http://linux.byexamples.com/archives/315/how-to- выключения, и перезагрузится-без Судо-пароля /
Я считаю, что это только проблема при выполнении этой команды через командную строку.
По-видимому, вы можете отключить root из GUI, потому что gdm работает от root. Gnome сообщает gdm о завершении работы, и gdm делает это.
Вы можете сделать что-то подобное со сценарием. Я не уверен, насколько вы удобны с BASH, но я считаю, что можно написать скрипт, который работает от имени root, и когда он получает определенный сигнал, запускает команду shutdown.
Имейте в виду, что это может представлять проблему безопасности.
Невозможно обойти подсказку для пароля суперпользователя при перезагрузке, в то время как другие пользователи регистрируются, не открывая окно терминала и выдавая команду reboot
как root:
] sudo reboot
Даже если вы не настроили на обход пароля для своей учетной записи пользователя, sudo
также запросит ваш пароль.
Не беспокойтесь, это ХОРОШИЕ вещи. Перезагрузка должна быть редкими, и простая подсказка пароля администратора автоматически спасает вас!
Есть лучший способ. Если вы установили 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
С уважением.
Ответ Ричарда Холлоуэя на самом деле не является способом предоставления полномочий 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
Ссылки:
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. Не знаю, заботится ли Канонич ...
Это работает 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