Portál AbcLinuxu, 16. června 2025 04:17


Dotaz: Jak vypnout server

5.3.2019 10:16 .
Jak vypnout server
Přečteno: 1016×
Odpovědět | Admin
Ahoj, jak prosím vypnout server pomocí příkazu/scriptu zadaného v souboru? Děkuji

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.3.2019 10:28 KOLEGA | skóre: 17 | blog: odpocinuti_vecne
Rozbalit Rozbalit vše Re: Jak vypnout server
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jaky ma ten server operacni system?

Na linuxu muzes treba pouzit shutdown -h nebo treba poweroff

Staci si vytvorit soubor vypni.sh s takovymhle obsahem:

#!/bin/sh

# Vypne pocitac

poweroff

Nastavit mu pravo na spousteni

chmod +x vypni.sh

A pak ho muzes volat:

./vypni.sh

V nekterych distribucich budes potrebovat vyssi prava pro vypinani pocitace. Takze to budes chtit spoustet jako root
5.3.2019 10:48 .
Rozbalit Rozbalit vše Re: Jak vypnout server
Děkuji, je tam Debian 9.x

Funguje to v terminále po spuštění toho souboru, ale php to nespustí :( Nevíte co s tím? Mám server jako localhost a potřebuji ho vypínat /restartovat z prohlížeče a už se s tím dva dny trápím :(

var_dump(shell_exec('/opt/shutdown.sh 2>&1'));
"Failed to set wall message, ignoring: The name org.freedesktop.PolicyKit1 was not provided by any .service files Failed to power off system via logind: The name org.freedesktop.PolicyKit1 was not provided by any .service files Failed to open /dev/initctl: Permission denied Failed to talk to init daemon. "
5.3.2019 11:10 Franta Hanzlík
Rozbalit Rozbalit vše Re: Jak vypnout server
Tipnul bych si, že shutdown/poweroff/reboot vyžadují root práva (nebo jestli distro podporuje capabilities, tak někoho s CAP_SYS_BOOT) a že váš php script běží pod jiným uživatelem (apache apod). Takže bych to asi řešil ještě přes sudo.
5.3.2019 11:30 .
Rozbalit Rozbalit vše Re: Jak vypnout server
Můžete být konkrétnější, jsem úplný začátečník ;)
5.3.2019 11:12 MadCatX | skóre: 28 | blog: dev_urandom
Rozbalit Rozbalit vše Re: Jak vypnout server
Jako hodně jednoduchý hack by mohlo fungovat toto:
$ chown root:root /opt/shutdown.sh
$ chmod u+s /opt/shutdown.sh
5.3.2019 11:29 .
Rozbalit Rozbalit vše Re: Jak vypnout server
Děkuji ale nefunguje to, chyba je stejná.
5.3.2019 12:13 KOLEGA | skóre: 17 | blog: odpocinuti_vecne
Rozbalit Rozbalit vše Re: Jak vypnout server
Tohle by te mohlo zajimat, je to anglicky: https://stackoverflow.com/questions/13538970/is-there-a-way-for-shutting-down-pc-using-php

Teorie rika, ze chces donutit PHP pustit nejaky shell prikaz (proste jako kdyz to napises do prikazove radky).

Problemem muze byt, ze to PHP bezi pod uzivatele weboveho serveru, v tvem pripade apache a nema na to prava, to se resi pridanim sudo shutdown -h

Akorat to bude chtit rici, ze ten uzivatel apache, smi neco takoveho udelat. To te zase bude zajimat tohle cteni: https://medium.com/@daggerdwivedi/allowing-web-user-on-apache-server-to-run-scripts-as-root-b62c4491e25f
5.3.2019 12:29 Georgo10 | skóre: 14 | blog: Deset hříchů | Olomouc
Rozbalit Rozbalit vše Re: Jak vypnout server
Mam pocit, ze suid pro sh skripty nebude fungovat: http://www.faqs.org/faqs/unix-faq/faq/part4/section-7.html
-- Georgo
5.3.2019 17:26 KOLEGA | skóre: 17 | blog: odpocinuti_vecne
Rozbalit Rozbalit vše Re: Jak vypnout server
presne tak.
Řešení 1× (OldFrog {Ondra Nemecek})
Josef Kufner avatar 5.3.2019 12:54 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak vypnout server
Odpovědět | | Sbalit | Link | Blokovat | Admin
Do /etc/sudoers přidej tento řádek:
www-data  ALL=(root) NOPASSWD: /sbin/shutdown *
A shutdown zavolej z PHP takto:
/usr/bin/sudo /sbin/shutdown now --poweroff
Tím bude mít shutdown dostatečná oprávnění na požádání initu o vypnutí serveru.

Hvězdička v sudoers ti umožní nastavit různé parametry, například tak můžeš říct, že se server vypne až za 10 minut:
/usr/bin/sudo /sbin/shutdown --poweroff +10 'Začíná noc.'
A když si to náhodou rozmyslíš, tak můžeš ten shutdown ještě zrušit:
/usr/bin/sudo /sbin/shutdown -c
Hello world ! Segmentation fault (core dumped)
5.3.2019 13:34 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Jak vypnout server
Můžeš být i drsnější a rovnou zapsat jako root:
~# echo o > /proc/sysrq-trigger
5.3.2019 17:11 Radovan
Rozbalit Rozbalit vše Re: Jak vypnout server
Pokud by chtěl být opravdu drsný: http://www.lamer.cz/quote/1 :-D
5.3.2019 13:36 .
Rozbalit Rozbalit vše Re: Jak vypnout server
Tak jsem to udělal, pro jistotu restartoval server ale dostanu zprávu
"sh: 1: /usr/bin/sudo: not found "
Josef Kufner avatar 5.3.2019 13:42 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak vypnout server
Tak doinstaluj sudo. Je všude, ale nemusí být ve výchozím stavu nainstalované.
Hello world ! Segmentation fault (core dumped)
5.3.2019 13:51 .
Rozbalit Rozbalit vše Re: Jak vypnout server
Něco na mě vyskočilo při instalaci, co mám prosím zadat?
Configuration file '/etc/sudoers'
 ==> File on system created by you or by a script.
 ==> File also in package provided by package maintainer.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** sudoers (Y/I/N/O/D/Z) [default=N] ? 
5.3.2019 16:48 své jméno
Rozbalit Rozbalit vše Re: Jak vypnout server
TVL to je materiál ty PHP programátoři.
k3dAR avatar 5.3.2019 18:48 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: Jak vypnout server
protoze si rucne menil soubor sudoers, balicek sudo pri instalaci se pta co ma udelat, nevim co v nem ted mas, pokud byl pri pridavani "www-data ALL=(root) NOPASSWD: /sbin/shutdown *" prazdnej/zadnej, tak bude potreba Y-instalovat_soubor_z_balicku a znovu tam ten radek pridat, pokud byl pretim sudoers celej tak bys mohl N - nechat_ten_upravenej, idelane dej D - zobrazit_rozdil_mezi_aktualnim_a_z_balicku a uvidis zda jedinej rozdil je to co si pridal
porad nemam telo, ale uz mam hlavu... nobody
5.3.2019 17:11 j
Rozbalit Rozbalit vše Re: Jak vypnout server
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jestli ti jde o to, jak zaridit ze si ten srv (nejen) vypne kdokoli z internetu, tak ses na nejlepsi ceste ...
8.3.2019 15:29 jano
Rozbalit Rozbalit vše Re: Jak vypnout server
.. a pak si sa prebudil a bola tma! Iba blbe kecy, to fakt milujem.
11.3.2019 13:32 j
Rozbalit Rozbalit vše Re: Jak vypnout server
Retardovancu jako ses ty je plnej net, a presne tpodle toho to i vypada ...

11.3.2019 15:05 Sodalite
Rozbalit Rozbalit vše Re: Jak vypnout server
Má pravdu. Je to bezpečnostní díra.
11.3.2019 15:53 pavele
Rozbalit Rozbalit vše Re: Jak vypnout server
No pokud to poběží v https webové stránce a pokud bude mít přístup pouze majitel klientského cerifikátu, tak to sice pořád bude bezpečnostní díra, ale obtížně zneužitelná.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.