Portál AbcLinuxu, 5. května 2025 23:14

Dotaz: vypnutí počítače bez roota

23.8.2009 21:07 Jcas | skóre: 19 | blog: linux v rukou ...
vypnutí počítače bez roota
Přečteno: 1211×
Odpovědět | Admin

Už jsem pákrát zažil, že se počítač opravdu kousnul. Někdy víc, někdy míň, ale jediná věc, která vždy fungovala bylo přepnutí na virtuální terminál. Když chcu PC vypnout nebo restartovat v tomto okamžiku mohu příkazy volat pouze jako root. A jaké má řešení běžný uživatel, který by nikdy neměl znát heslo roota a ani příkaz sudo?

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

Odpovědi

Amarok avatar 23.8.2009 21:17 Amarok | skóre: 33 | blog: blogoblog
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jako root editovat soubor /etc/sudoers
Dole by melo byt nasledujici:

%wheel ALL=(root) NOPASSWD: /sbin/shutdown
%wheel ALL=(root) NOPASSWD: /sbin/halt
%wheel ALL=(root) NOPASSWD: /sbin/reboot

Skupina wheel funguje kazdopadne v archlinuxu, mozna je to pro jine distribuce trochu jinak.

Prikaz 'sudo' se bude muset ale pouzit, nevidim nejak duvod, proc by mel byt problem zadat 'sudo reboot' apod.
GNUniverse - May the source be with you...
23.8.2009 21:24 Jcas | skóre: 19 | blog: linux v rukou ...
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota

jasně, takže mu ty příkazy jen povolím. Nakonec mu vůbec nemusím říkat co sudo znamená a navíc i když mu to řeknu, tak to stejně na jiné příkazy nemůže použít. Akorát ještě nevím (neznalost), proč příkazy pro vypnutí může volat jenom root. Nemá to nějaké bezpečností souvislosti? A gdm, kdm, xdm když volají halt, tak se taky tváří jako root?

23.8.2009 21:34 Jooky (inactive) | skóre: 39 | blog: Jooky | Bratislava
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota

- linux je multipouzivatelsky system a preto je neziaduce aby mohol hociaky uzivatel vypnut masinu (keby mohol vypnut server hocikto kto ma ssh access tak to by riadne zavanalo problemom). Pokial nejde o servrovu masinu tak sa vypinanie vacsinou riesi cez klikatko v UI, alebo login manageri, popripade ako uz kolega pisal cez sudo.

- login manager bezi pod rootom aby mohol prihlasit hociakeho autentifikovaneho uzivatela a teda reboot/halt moze volat ako root

Amarok avatar 24.8.2009 10:28 Amarok | skóre: 33 | blog: blogoblog
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
"login manager bezi pod rootom" - me by jen zajimalo, jak je vypnuti systemu reseno, pokud se vypne uz primo z okenniho manazera (nektere jako KDE a GNOME prece tu moznost nabizeji). KDE ani GNOME uz nepouzivam, tak jsem si musel do hlavniho menu Openboxu a Fluxboxu zadat manualne polozku "vypnout" a hodit za to spusteni prikazu "sudo halt" (ktere jsem si musel nejdriv povolit tak, jak jsem psal nahore v reakci na hlavni dotaz), jak to teda ale dela KDE/GNOME?
GNUniverse - May the source be with you...
24.8.2009 12:33 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Těžko říct, jedna z možností je, že tuto informaci předá zpátky kdm/gdm a shutdown provede ten.
24.8.2009 12:37 pakanek | skóre: 28 | Vyškov
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
KDE, Gnome řeknou při ukončování právě tomu login manageru. V login manageru pak bývá seznam uživatelů, kteří mohou vypnout počítač.
Všechno dobré je pro něco zlé.
michich avatar 24.8.2009 13:53 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Ve Fedoře (+ jinde, kde je taky ConsoleKit) o to GNOME požádá přes D-Bus console-kit-daemona (interface org.freedesktop.ConsoleKit.Manager). Ten si přes PolicyKit ověří, zda je k tomu daný uživatel oprávněn, a když ano, provede to. Oprávnění se dají nastavovat v GUI polkit-gnome-authorization. V tomto případě je to konkrétně akce s identifikátorem org.freedesktop.consolekit.system.stop.
Amarok avatar 24.8.2009 14:03 Amarok | skóre: 33 | blog: blogoblog
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Uf dik, takhle detailne to ani nebylo treba... :)
GNUniverse - May the source be with you...
24.8.2009 15:04 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota

Díky za info

vencour avatar 23.8.2009 21:43 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Odpovědět | | Sbalit | Link | Blokovat | Admin

Když to tu už zaznělo, mně přijde SysMagicRq jako docela bezpečnostní díra právě kvůli možnosti vypnutí přes Alt+SysRq+O ... co si o tom myslíte?

Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
23.8.2009 23:41 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Ono je to určeno hlavně pro testovací systémy, kde se dá očekávat, že se něco "kousne". Povolovat to na produkčním stroji nebo dokonce serveru bych nepovažoval za moc šťastný nápad.
24.8.2009 06:46 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Nějak mi uniká to slavné bezpečnostní riziko, které sysrq přináší... člověk s přístupem ke konzoli to obvykle může vypnout i jinak než nějakým opičím chvatem.
In Ada the typical infinite loop would normally be terminated by detonation.
24.8.2009 09:45 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Může mít přístup ke klávesnici (a monitoru), ale ne k vlastnímu počítači. Navíc Magic SysRq key umožňuje i jiné věci, než jen vypnout počítač, ale nepamatuji si z hlavy, co tam všechno je (a jak je nebezpečné zpřístupnit to náhodnému kolemjdoucímu).
vencour avatar 24.8.2009 09:46 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota

Třeba přemountovat z RW na RO.

Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
24.8.2009 09:50 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
To ano (to si zrovna pamatuji), ale myslel jsem spíš, jestli mezi těmi funkcemi není něco, co by místo DoS umožnilo získání práv, která uživateli nepříslušejí.
houska avatar 24.8.2009 09:49 houska | skóre: 41 | blog: HW
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
24.8.2009 09:55 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Hm, tak třeba u toho vyvolání OOM killeru bych si dokázal představit scénář, kdy by to útočníkovi při troše štěstí (a po nějaké době střílení naslepo) mohlo pomoci získat práva lokálního uživatele nebo dokonce roota.
24.8.2009 11:08 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
To teda nevím jak, nota bene když OOM můžete vyvolat i vzdáleně.

Ad zpřístupnění klávesnice a monitoru ale ne počítače: dejte mi příklad z praxe, kde je to prospěšné a čemu...

Spíš bych vyzdvihl sysrq pro použití jako SAK, bez kterého může kdokoliv s přístupem ke klávesnici a monitoru získat Vaše heslo.
In Ada the typical infinite loop would normally be terminated by detonation.
24.8.2009 12:39 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
To teda nevím jak, nota bene když OOM můžete vyvolat i vzdáleně.

Třeba tak, že by tím odstřeleným procesem byl vlock, xlock nebo něco podobného. Spolehlivě se to samozřejmě zařídit nedá, ale stoprocentně nemožné to také není.

Ad zpřístupnění klávesnice a monitoru ale ne počítače: dejte mi příklad z praxe, kde je to prospěšné a čemu...

Třeba jakákoli forma "informačního kiosku" - jízdní řády nebo objednávkový automat na nádraží, počítač, na kterém si může zákazník naťukat objednávku (jako mají třeba v Alze) atd. V některých případech vystačíte s redukovanou klávesnicí (šipky, Enter, Esc), ale ne vždy. Nebo třeba v internetové kavárně.

24.8.2009 14:16 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Kiosk je dosti speciální zařízení, které se chová spíše jako terminál (tenký klient), než svévolný počítač. Tudíž jakákoliv akce (nejhorší varianta: vypnutí kiosku) je omezená na kiosk a neublíží (z bezpečnostního hlediska) serveru, který informace poskytuje.

A u všech ostatních případů je opravdu jednodušší se vlomit šroubovákem než mačkat oom killer a čekat až ustřelí zámek na session. Naopak, pro diagnózu a řešení spousty problémů na servrech jsem sysrq již hodněkrát využil.
In Ada the typical infinite loop would normally be terminated by detonation.
23.8.2009 21:45 fafsdfs
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Odpovědět | | Sbalit | Link | Blokovat | Admin

Ideálně tlačítkem na bedne.

Už cca  deset let maji PC acpi kompatibilní zdroje, ktere umožňují komunikaci s deskou (biosem) i při vypínání. Stačí mít acpi demona (obvykle default) a ten zařídí vše potřebné.

AraxoN avatar 23.8.2009 21:46 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Odpovědět | | Sbalit | Link | Blokovat | Admin

Okrem už spomínaného sudo je tu možnosť nainštalovať a mať spustený acpid. Ten potom odchytí stlačenie vypínača na počítačovej skrini (alebo notebooku) a shutdown inicializuje sám.

vlastikroot avatar 24.8.2009 13:30 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Odpovědět | | Sbalit | Link | Blokovat | Admin

Da se pres suid bit.

chmod +s /sbin/shutdown
We will destroys the Christian's legion ... and the cross, will be inverted
24.8.2009 14:30 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
/sbin/shutdown může být skript.
vlastikroot avatar 24.8.2009 15:08 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Muze, ale nikdo nerekl ze je ;-)
We will destroys the Christian's legion ... and the cross, will be inverted
24.8.2009 15:41 l4m4
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Odpovědět | | Sbalit | Link | Blokovat | Admin
Používat consolehelper (userhelper). Např. u mne je /usr/bin/reboot či /usr/bin/poweroff symlink na consolehelper. A v /etc/pam.d/reboot je pak
#%PAM-1.0
auth       sufficient	pam_rootok.so
auth       required	pam_console.so
account    required	pam_permit.so
Tučný řádek dává lokálním uživatelům (tj, přihlášeným na konzole) možnost příkaz použít. Jelikož takový uživatel může většinou stejně počítač vypnout fyzicky, nic se nemění.

Nejmenovná distribuce, kterou používám, to má takto nastveno implicitně.
24.8.2009 18:56 Ash | skóre: 53
Rozbalit Rozbalit vše Re: vypnutí počítače bez roota
Odpovědět | | Sbalit | Link | Blokovat | Admin
Používám za tím to účelem ctrl-alt-del.

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.