Linux shutdown without sudo

Содержание
  1. Выключение Linux из командной строки
  2. Процесс выключения Linux
  3. Синтаксис и опции shutdown
  4. Выключение компьютера в Linux
  5. 1. shutdown
  6. 2. reboot
  7. 3. halt
  8. 4. poweroff
  9. 5. SysRQ
  10. 6. Графический интерфейс
  11. Выводы
  12. выключить комп через терминал(shutdown) без sudo. как ?
  13. Если systemd, то всё просто
  14. Arch Linux
  15. #1 2013-09-16 14:30:17
  16. [SOLVED] Poweroff and Reboot without Sudo
  17. #2 2013-09-16 14:39:30
  18. Re: [SOLVED] Poweroff and Reboot without Sudo
  19. #3 2013-09-16 14:39:43
  20. Re: [SOLVED] Poweroff and Reboot without Sudo
  21. #4 2013-09-16 14:47:13
  22. Re: [SOLVED] Poweroff and Reboot without Sudo
  23. #5 2013-09-16 15:00:18
  24. Re: [SOLVED] Poweroff and Reboot without Sudo
  25. #6 2013-09-16 15:09:18
  26. Re: [SOLVED] Poweroff and Reboot without Sudo
  27. #7 2013-09-16 15:09:36
  28. Re: [SOLVED] Poweroff and Reboot without Sudo
  29. #8 2013-09-16 15:10:10
  30. Re: [SOLVED] Poweroff and Reboot without Sudo
  31. #9 2013-09-16 15:27:12
  32. Re: [SOLVED] Poweroff and Reboot without Sudo
  33. #10 2013-09-16 15:36:44
  34. Re: [SOLVED] Poweroff and Reboot without Sudo
  35. #11 2013-09-16 15:39:03
  36. Re: [SOLVED] Poweroff and Reboot without Sudo
  37. #12 2013-09-16 15:42:31
  38. Re: [SOLVED] Poweroff and Reboot without Sudo
  39. #13 2013-09-16 15:55:05
  40. Re: [SOLVED] Poweroff and Reboot without Sudo
  41. #14 2013-09-16 16:27:48
  42. Re: [SOLVED] Poweroff and Reboot without Sudo
  43. #15 2013-09-16 18:22:51
  44. Re: [SOLVED] Poweroff and Reboot without Sudo
  45. #16 2013-09-16 18:50:29
  46. Re: [SOLVED] Poweroff and Reboot without Sudo
  47. #17 2013-09-16 19:45:49
  48. Re: [SOLVED] Poweroff and Reboot without Sudo
  49. #18 2013-09-16 19:56:31
  50. Re: [SOLVED] Poweroff and Reboot without Sudo
  51. #19 2013-09-17 01:09:07
  52. Re: [SOLVED] Poweroff and Reboot without Sudo
  53. #20 2013-09-17 01:12:08
  54. Re: [SOLVED] Poweroff and Reboot without Sudo
  55. #21 2013-09-17 01:29:16
  56. Re: [SOLVED] Poweroff and Reboot without Sudo

Выключение Linux из командной строки

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

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

Процесс выключения Linux

Часто для выключения Linux из терминала используется утилита shutdown. Есть также команды poweroff, halt, но они для нестандартных случаев. Также выключить linux из консоли можно с помощью сочетаний клавиш SysRQ. Но сначала давайте рассмотрим синтаксис команды shutdown. Естественно, команда shutdown в Linux или любая другая не самостоятельно завершает работу системы и выключает компьютер. Она всего лишь передает запрос на выключение системе инициализации, а затем ядру. А уже они выполняют ряд сложных операций по подготовке и выключению компьютера. Если кратко, то вот они:

  • Завершение процессов пользователя.
  • Сигнал SIGTERM всем процессам.
  • Сигнал SIGKILL всем процессам.
  • Монтирование файловых систем в режиме только для чтения.
  • Подготовка внешних устройств к отключению.
  • Блокировка пространства пользователя, чтобы гарантировать, что ни один код пользователя больше не будет запущен.
  • Завершение работы и отключение питания большинства периферических устройств.
  • Отключение питания компьютера.

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

Читайте также:  Что такое switch to windows phone

Синтаксис и опции shutdown

Синтаксис команды очень простой:

$ shutdown [опции] [время] [сообщение]

Опции задают параметры отключения, их мы рассмотрим ниже. Время можно задавать в виде чч:мм в 24 часовом формате. Также можно использовать запись +минуты, указывающую через сколько минут от текущего момента нужно выключить компьютер с Linux. Также доступна константа now, указывающая, что выключать нужно прямо сейчас. Параметр сообщение позволяет задать сообщение, которое будет выведено в терминал перед выключением.

Вот основные опции утилиты:

  • —help — вывести справку по программе
  • -H, —halt — отключить питание, не завершая процессы и не перемонтируя файловые системы
  • -P, —poweroff — нормальное выключение
  • -r, —reboot — перезагрузка
  • -k — не выполнять реальных действий, а только вывести сообщение
  • —no-wall — выключить компьютер, но не выводить сообщение
  • -c — отменить запланированное выключение linux из командной строки

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

Выключение компьютера в Linux

1. shutdown

Самая простая и самая часто используемая команда выключения компьютера linux, отключит компьютер немедленно:

sudo shutdown -h now

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

Теперь попробуем запланировать выключение компьютера linux через пять минут:

sudo shutdown -h +5 «Компьютер будет выключен через 5 минут»

Мы запланировали вывод сообщения перед выключением. Чтобы отменить команду shutdown выполните:

sudo shutdown -c

Точно так же мы можем указать точное время выключения, например в девять вечера:

sudo shutdown -h 21:00

Как я уже говорил, не только команда shutdown linux умеет выключать компьютер, есть еще несколько утилит способных на это. Рассмотрим их тоже.

2. reboot

Команда reboot обычно используется для перезагрузки системы, но она также умеет выключать компьютер. Мы не будем ее подробно рассматривать, потому, что она еще проще команды shutdown. Для выключения нужно задать опцию -p:

3. halt

Эта команда тоже выключает компьютер. Только делает она это очень по-своему. Она не выполняет никаких подготовительных действий перед выключением, а просто отключает питание:

Использование halt может повредить систему

4. poweroff

Это аналог halt, делает в точности то же самое:

5. SysRQ

Помните, в начале статьи, я говорил о сочетании клавиш для включения компьютера? Рассмотрим этот вопрос подробнее.

SysRQ — это подсистема, реализованная на уровне ядра. Ядро обрабатывает все нажатия клавиш, а с помощью этой подсистемы, оно может принимать от пользователя команды, даже когда система полностью зависла. Основное предназначение этой подсистемы — работа с компьютером в проблемных ситуациях, например, если вы думаете что ваш компьютер заразил вирус, или компьютер завис и его нужно выключить. Для доступа к SysRq используются сочетания клавиш Alt+PrtScr+номер

Самое интересное, что мы можем выполнить безопасное выключение компьютера linux. Для этого зажмите клавиши Alt + PrtScr и поочередно нажимайте:

  • R — разблокировать клавиатуру;
  • E — послать всем процессам сигнал SIGTERM;
  • I — послать всем процессам сигнал SIGKILL;
  • S — перенести все данные из кеша файловых систем на диск;
  • U — перемонтировать файловые системы только для чтения;
  • B — перезагрузить.

Также вместо всего этого можно воспользоваться сочетанием клавиш Alt+PrtScr+O, в таком случае, вся процедура будет выполнена автоматически, эта команда поддерживается не всеми ядрами.

6. Графический интерфейс

Выключить компьютер в графическом интерфейсе ещё проще. Для этого кликните по иконке выключения в правом верхнем углу, а затем выберите Выключить/Завершить сеанс, затем Выключение.. и снова Выключить:

Выводы

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

Читайте также:  2 назовите основные дистрибутивы oc linux

Источник

выключить комп через терминал(shutdown) без sudo. как ?

приветствую. пишу для себя программку для выключения/перезагрузки системы по таймеру(аналог EasyShutdown под linux), ребутить систему решил через библиотеку subprocess(python) которая запускает скрипты bash в python’e, но не знаю как сделать, что бы можно было перезагрузить машину без su/sudo.

Можно через dbus и ConsoleKit

Проще через судов, а если серьёзно то добавить пользователя в группу, не помню какую так как нет возможности проверить

этот вариант не катит, надо что бы программа запускалась «с коробки» на разных машинах, а не только у меня.

спасибо, буду пробовать, хотя не до конца понимаю что это за кусок кода.

зафига тебе выключать чужие машины

нее, ты не так понял 🙂 просто что бы программка работала на разных компьютерах(под разными учетными записями), а не только у меня(потому-что я прописал права доступа)

ConsoleKit — это такой демон, обслуживащий пользовательские сессии. Им можно управлять через dbus. Только вот его вроде выпиливают сейчас повсюду. Если у тебя systemd, то фокус не прокатит. Может заглянут знатоки и подскажут, как это сделать через logind.

А пароль кто будет вводить?

которая запускает скрипты bash в python’e

может сразу на баше написать?

да, прочитал о ConsoleKit так там в разных версиях может по разному себя вести, bash не катит, т.к. это будет аплет для unity с менюшками на Gtk, даже не знаю как быть, хотелось бы универсальность программки, что бы под разными версиями запускался системы/пакетов.

Вроде бы с правами надо разбираться через polkit.

:NOPASSWD — настраивается в /etc/sudoers.

Стрёмно как-то давать беспарольный sudo даже на одну команду. Хотя может это паранойя. Но всё равно ТСу это не подходит.

если ты делаешь утилиту для других людей, утилиту (работающую «из коробки») для которой нужны повышенные привелегии, такие как «вылючение компьютера» или «стереть все файлы из /home/» (шутка) — то просто укажи в документации к утилите это требование.

. мол — «запускайте от root или через sudo».

второй вариант: раздели свою утилиту на две слабосвязанные части. одна часть это сервисный-юнит (запускаемый через systemd и висящий в системе постоянно), а вторая часть это клиентская часть. клиентская часть — будет связываться со своей серверной частью через dBus, например.

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

спасибо, буду пробовать, хотя не до конца понимаю что это за кусок кода.

Тогда уж не вызывать bash из python только для того, чтобы дернуть dbus-send, а использовать dbus-python.

Если systemd, то всё просто

poweroff или systemctl poweroff . По дефолту разрешения таковы, что единственный активный пользователь сможет вырубить машину без получения прав суперпользователя.

В случае с systemd такой демон уже написали и называется он logind 🙂

Источник

Arch Linux

You are not logged in.

#1 2013-09-16 14:30:17

[SOLVED] Poweroff and Reboot without Sudo

How can I Poweroff and Reboot my system without using sudo?

Last edited by aldoiljazi (2013-09-18 06:52:28)

#2 2013-09-16 14:39:30

Re: [SOLVED] Poweroff and Reboot without Sudo

Also in the wiki

#3 2013-09-16 14:39:43

Re: [SOLVED] Poweroff and Reboot without Sudo

Edit: Why do you want to reboot w/o sudo anyway?

Last edited by karol (2013-09-16 14:42:27)

#4 2013-09-16 14:47:13

Re: [SOLVED] Poweroff and Reboot without Sudo

I saw those, and they are outdated. Well I don’t want to type my password each time I reboot.

#5 2013-09-16 15:00:18

Re: [SOLVED] Poweroff and Reboot without Sudo

Did you try any of the solutions recommended by the wiki topic? «systemctl poweroff» should work.

Last edited by 2ManyDogs (2013-09-16 15:03:23)

#6 2013-09-16 15:09:18

Re: [SOLVED] Poweroff and Reboot without Sudo

#7 2013-09-16 15:09:36

Re: [SOLVED] Poweroff and Reboot without Sudo

Users shouldn’t be allowed to do things like installing / updating packages, rebooting or powering off the computer etc. You need to use sudo because of security.
If you don’t want to type your password in when using sudo, follow the wiki.

Читайте также:  Irbis nb61 windows 10 драйвер

#8 2013-09-16 15:10:10

Re: [SOLVED] Poweroff and Reboot without Sudo

#9 2013-09-16 15:27:12

Re: [SOLVED] Poweroff and Reboot without Sudo

@karol: systemd assumes that anyone with console access can shutdown/reboot the computer anyway (as they are sitting at the computer). Therefore, he should be able to issue `systemctl poweroff` etc. iff his session is setup correctly.

What is the output of `loginctl show-session $XDG_SESSION_ID`?

Steven [ web : git ]
GPG: 327B 20CE 21EA 68CF A7748675 7C92 3221 5899 410C
Do not email: honeypot@stebalien.com

#10 2013-09-16 15:36:44

Re: [SOLVED] Poweroff and Reboot without Sudo

@Stebalien
The wiki has

so I guess it’s a typo, right?

I can’t check if ‘systemctl poweroff’ works for me atm, but

#11 2013-09-16 15:39:03

Re: [SOLVED] Poweroff and Reboot without Sudo

«poweroff» and «systemctl poweroff» are equivalent, «poweroff» is symlinked to systemctl. As mentioned, these should work just fine without password if you are in an active session (@Karol, your session seems to be fine).

#12 2013-09-16 15:42:31

Re: [SOLVED] Poweroff and Reboot without Sudo

@Stebalien
The wiki has

so I guess it’s a typo, right?

Steven [ web : git ]
GPG: 327B 20CE 21EA 68CF A7748675 7C92 3221 5899 410C
Do not email: honeypot@stebalien.com

#13 2013-09-16 15:55:05

Re: [SOLVED] Poweroff and Reboot without Sudo

@aldoiljazi — You might want to check that you have polkit installed.

#14 2013-09-16 16:27:48

Re: [SOLVED] Poweroff and Reboot without Sudo

I was using old aliases for reboot / poweroff, but you’re right, ‘poweroff’ and ‘reboot’ work w/o sudo.

Please check if my edits make sense https://wiki.archlinux.org/index.php?ti … did=275784
If I have more questions, I will open a new thread not to derail this one.

#15 2013-09-16 18:22:51

Re: [SOLVED] Poweroff and Reboot without Sudo

@karol: man poweroff (which references halt & reboot as well) says

NOTES
These are legacy commands available for compatibility only.

is more appropriate

#16 2013-09-16 18:50:29

Re: [SOLVED] Poweroff and Reboot without Sudo

You’re right. Fixed.

#17 2013-09-16 19:45:49

Re: [SOLVED] Poweroff and Reboot without Sudo

@karol: systemd assumes that anyone with console access can shutdown/reboot the computer anyway (as they are sitting at the computer). Therefore, he should be able to issue `systemctl poweroff` etc. iff his session is setup correctly.

What is the output of `loginctl show-session $XDG_SESSION_ID`?

Last edited by aldoiljazi (2013-09-16 19:47:04)

#18 2013-09-16 19:56:31

Re: [SOLVED] Poweroff and Reboot without Sudo

work for you w/o sudo?

#19 2013-09-17 01:09:07

Re: [SOLVED] Poweroff and Reboot without Sudo

work for you w/o sudo?

#20 2013-09-17 01:12:08

Re: [SOLVED] Poweroff and Reboot without Sudo

Are you sure you have polkit installed?
If so, reboot and try again.

#21 2013-09-17 01:29:16

Re: [SOLVED] Poweroff and Reboot without Sudo

Why does karol’s have Scope and aldoiljazi’s has DefaultControlGroup but not vice versa?

Note: I’m just curious — I’m not claiming this explains anything.

EDIT: I’m guessing karol is using testing and aldoiljazi is not (http://upstream-tracker.org/changelogs/ … gelog.html).

Last edited by cfr (2013-09-17 01:36:14)

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Corporation Wireless 8265 / 8275 | US keyboard with Euro | 512G NVMe INTEL SSDPEKKF512G7L

Источник

Оцените статью