Portál AbcLinuxu, 6. května 2025 07:35

Dotaz: mount aj. programy v bashi bez roota

28.1.2013 20:03 Radun
mount aj. programy v bashi bez roota
Přečteno: 350×
Odpovědět | Admin
Dobrý den, potřeboval bych poradit s bashem. Mám skript, ve kterém používám mount, mpd (který restartuji) a skript hibernate (skript patřící k tuxonice). Abych mohl spouštět skript uživatelem, musím mít všechny uvedené v sudoers, což mi nepřijde jako nejlepší řešení. Nemám, ale tušení jak by se to dalo udělat jinak. Skript vlastně ani z příkazové řádky spouštěný nebude, mám v plánu jej namapovat na nějakou klávesu. Tak mi napadlo, jestli by ten skript nemohl vlastni //root// a nějakým způsobem by ho spouštěl windows-manager (používám fluxbox); ale ten je vlastně taky spouštěný pod uživatelem, tak to asi nepůjde. Díky za radu.

Ř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

Řešení 3× (2X4B-523P, Vojtěch Horký, vojtam)
Max avatar 28.1.2013 20:35 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: mount aj. programy v bashi bez roota
Odpovědět | | Sbalit | Link | Blokovat | Admin
Máš :
"/usr/bin/script.sh"
Když ho chceš spustit jako root, tak si prostě upravíš sudoers s NOPASSWD. Nějak takto (musí se definovat celá cesta):
uzivatel ALL= NOPASSWD: /usr/bin/script.sh

# nebo pro skupinu :
%skupina ALL= NOPASSWD: /usr/bin/script.sh
Takže pak na klávesové zkratce voláš :
sudo /usr/bin/script.sh
A jelikož to voláš ty, tak si do sudoers dej svého uživatele.
Zdar Max
Měl jsem sen ... :(
28.1.2013 20:53 Radun
Rozbalit Rozbalit vše Re: mount aj. programy v bashi bez roota
Nojo, to je fakt. Tak to mi nějak netrklo, nebo mi to trklo kdysi -- tuším --, ale něco jsem dělal špatně a nešlo to, tak jsem usoudil, že to tak nejde a už jsem si nad tím hlavu nelámal. Vyzkouším
28.1.2013 23:24 Radun
Rozbalit Rozbalit vše Re: mount aj. programy v bashi bez roota
... funguje. Díky!
28.1.2013 23:33 Radun
Rozbalit Rozbalit vše Re: mount aj. programy v bashi bez roota
Chtěl jsem to označit jako vyřešeno, ale marně pátrám jak.
Max avatar 29.1.2013 00:18 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: mount aj. programy v bashi bez roota
Hned vedle tlačítka "odpovědět" :D
Zdar Max
Měl jsem sen ... :(
29.1.2013 00:56 Radun
Rozbalit Rozbalit vše Re: mount aj. programy v bashi bez roota
já mam vedle odkazu "odpověď" odkaz "sbalit" a nahoře "admin"; pokud to má být opravdu tlačítko, tak to nikde nividim :( ; asi na to nestačím, tak to prosím zaškrtněte někdo za mne
29.1.2013 01:52 2X4B-523P | skóre: 38 | blog: Zelezo_vs_Debian
Rozbalit Rozbalit vše Re: mount aj. programy v bashi bez roota
to tam je vidět až po přihlášení
1.2.2013 17:07 Radun
Rozbalit Rozbalit vše Re: mount aj. programy v bashi bez roota
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem konečně přišel na to, proč jsem tenkrát zmíněný popsaný způsob zavrhl a uchýlil se k zoufalému řešení vypsat všechny programy do sudoers separé. Ono totiž, když to udělám způsobem zde popsaným, pak se stane, že některé programy prostě nefungují správně, pokud je spouští někdo jiný např. program xbindkeys. Programy, které se mi ve skriptu neprovedou jsou: setxkbmap, xmodmap, feh. Ve výsledku se mi tak nenastaví klávesnice a nezobrazí obrázek po probuzení počítače. Přitom, pokud spustím skript z terminálu přes sudo, tak je to všechno ok. S tímhle si nevím rady, ač už jsem nad tím několikrát přemýšlel. Díky moc
Max avatar 1.2.2013 22:49 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: mount aj. programy v bashi bez roota
Pokud chceš spouštět některé programy pod jiným uživatelem, než rootem, tak je ve scriptu spouštěj přes su :
su - uzivatek -c "prikaz"
Zdar Max
Měl jsem sen ... :(
1.2.2013 23:37 Radun
Rozbalit Rozbalit vše Re: mount aj. programy v bashi bez roota
Koukám, že je to víc moje nepozornost, než záhada. Zjistil jsem totiž, že mám ty nefunkční programy v podmínce, která je platná pouze pro funkční X server (v konzoli se neprovádějí). Příčina je tedy ta, že ten test který provádím je prostě FALSE pokud ho spouští xbindkeys na pozadí.

terminal=`tty`
pid=$$
X=`ps -ef | awk -v pid=$pid -v term=$terminal ' pid && $0 ~ term{ print $6 }'`
if [[ $X =~ pts ]];then
X=yes
else
X=no
fi

if [ "$X" == "yes" ]; then ...

Možná mi poradíte, jak to otestovat jinak. Díky
2.2.2013 11:15 Radun
Rozbalit Rozbalit vše Re: mount aj. programy v bashi bez roota
Tak už to mám, ráno moudřejšího večera :). Stačí testovat proměnnou $DISPLAY, která je v konzoli prázdná.

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.