Portál AbcLinuxu, 1. června 2025 10:04
Tak sem z toho jelen. Potřeboval sem vytvořit příkaz na vypínání pc, bez toho abych musel zadávat heslo do sudo. Samozřejmně mě napadlo řešit to rourou nějak následovně:
echo "heslo" | sudo shutdown now
Ale prostě to nefunguje. Všechny ostatní roury jsou.
Např: ls | grep soubor.txt
i roura s echo funguje (např. echo "ahoj svete" | espeak
Ale sudo roury prostě nebere a dál se tvrdošijně ptá na heslo. Vím že to sem to někde kdysy hledal a šlo to. Jenomže ted to ani za nic nemůžu najít. Možná to je taky tím že dřív se měl ubuntu ted mám arch. Poradíte někdo?
man sh
a tam hladaj HERE DOCUMENTS
.
To co chceš je, dle mého názoru, v principu špatně. Pokud nechceš zadávat heslo, nastav sudo tak, aby jsi ho zadávat nemusel tj. volba NOPASSWD. Ukládat heslo do souboru je zásadní chyba.
zkus do /etc/sudoers dat toto:
%users ALL=(ALL) NOPASSWD: shutdown now
samozrejme se predpoklada ze budete ve skupine users
Tak vyřešeno:
echo "heslo" | sudo -S shutdown now
Autoři sudo spoléhali nejspíše na to že se najdou lidé jako já a tak umožnili přepnout sudo tak aby četlo ze STDIN místo z terminálu.
Ne, to je standartní vlastnost většiny Unixových nástrojů. A velice pochybuji, že ji autoři sudo zamýšleli, tak jak jsi ji použil Ty. Spíš je to příprava pro frontendy. Kdyby viděli, že ukládaš heslo do souboru, místo, aby jsi jeho zadávání vypnul, s velkou pravděpodobností by Tě stihl krutý trest.
echo "heslo"
predsa neuklada nikde nic (okrem historie) takze o akom subore je rec ? Ak ma clovek vypnutu historu nic sa nedeje.
Ale i tak za spravnejsiu cestu povazujem sudo.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.