Portál AbcLinuxu, 14. května 2024 09:36


Dotaz: skript pro spuštění několika konzolí s právy root

10.7.2007 20:37 1john2 | skóre: 35 | blog: jo12hn | zlín, brno
skript pro spuštění několika konzolí s právy root
Přečteno: 2088×
Odpovědět | Admin
Dobrý den,

snažím se vytvořit skript, který mi v gnome spustí terminál bash, provede "su -" a spustí dva terminály s několika kartami podotýkám že heslo nechci mít uloženo ve skriptu, ale vždy při startu skriptu ho načtu do proměnné, kde bude jen po dobu nutnou k přihlášení. řeším problém, jak příkazu su, předat heslo roota.

pokud použiji

su $heslo #do hesla sem si z klavesnice nacetl heslo

pokusi se terminal prihlasit jako $heslo

tuším že potřebuji přinutit su aby místo na klávesnici sáhlo pro heslo do proměnné ale netuším jak. pokoušel sem se heslo posílat heslo z jiného terminálu.bohužel neúspěšně. můžete mi někdo prosím poradit?

jde o můj první skript v bashi, čili se docela motám v přesměrování rourách ap, je to tím horší, čm dýl to zkouším=(( děkuju za každou radu
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.7.2007 22:49 zelial | skóre: 21
Rozbalit Rozbalit vše Re: skript pro spuštění několika konzolí s právy root
Odpovědět | | Sbalit | Link | Blokovat | Admin
nevim jak (a jestli vubec) jde prinutit su nacist heslo neinteraktivne. ale minimalne jednou ho stejne natukat musis, tak co misto do promene dat heslo rovnou tomu su. a pak, uz jako root, spustit ty dva termy?

su root -c "xterm & xterm &"
18.7.2007 22:58 1john2 | skóre: 35 | blog: jo12hn | zlín, brno
Rozbalit Rozbalit vše Re: skript pro spuštění několika konzolí s právy root
omlouvam se za zpozdeni, byl sem mimo, no konecne nejaky uspech: su root -c "gnome-terminal & gnome-terminal" spusti dva terminaly ted potrebuju aby pri stisku nejake klavesy(nejlip <"ctrl+t"> pro zacatek staci klidne jenom "i") otevrel v tom gnome-terminalu novy panel

dalsi co bych potreboval vedet je, jak se prenest do nove otevreneho terminalu,vpodstate kombinace alt+tab a dalsi skupinu prikazu vykonat v nem

asi bude nejlepsi mala ukazka jak si to teoreticky zhruba predstavuju:

su -

gnome-terminal

#ted se do nej prepnout a dalsi prikaz vykonat zde

cd /etc

#ted automaticky posle klavesovou kombinaci a otevre dalsi kartu terminalu a (pro pohyb mezi kartami pouzivam kombinace "ctrl+sipka doprava" a "ctrl+sipka doleva" prikazy opet vykona tady

cd /usr/src

# doufam ze je pochopitelne aspon trochu jak bych to potreboval
19.7.2007 08:09 cronin | skóre: 49
Rozbalit Rozbalit vše Re: skript pro spuštění několika konzolí s právy root
Počuj, nie je náhodou problémom, ktorý za tým všetkým väzí, Tvoja lenivosť? Lebo sorry, ale zatiaľ to vyzerá tak. Ak chceš urobiť niečo oveľa zložitejšie a nám si tu len predložil veľmi zjednodušenú verziu, vedz, že ideš nesprávnym smerom. V takom prípade si dané akcie treba naskriptovať do skriptu a ten skript pod root-om spustiť, niečo ako:
$ su -c "/root/script.sh"
kde script.sh bude obsahovať niečo ako:
#! /bin/sh

cd /usr/src/
make buildworld && make kernel && make installworld
mergemaster
19.7.2007 08:40 Jak Malaník
Rozbalit Rozbalit vše Re: skript pro spuštění několika konzolí s právy root
tohle bohuzel neni pravda, jde mi pouze o vytvoreni skriptu, ktery spusti dve konzole a nekolik panelu.

potrebuju aby se v jednom terminalu budu mit spusteny

tail -f /var/log/messages

a ve druhem nekolik panelu pro praci, potrebuju to napriklad pri ozivovani irdy, coz se mi uz nejakou dobu nedari=. snazim se premyslet sam, ale netusim kterou cestou se vydat=(

btw: makeworld ap mi nic nerika, po praci mrknu do googlu, jestli je to vtip, nebo to opravdu neco znamena
19.7.2007 08:45 Jak Malaník
Rozbalit Rozbalit vše Re: skript pro spuštění několika konzolí s právy root
kdyz jsem se pokusil zadat echo "t" > /dev/stdin vypise znak na terminal ale neprovede otevreni noveho panelu, nechci aby jste mi dali hotove reseni, to mi na nic nebude, chci to pochopit a neco se i naucit, jen bych potreboval nakopnout spravnym smerem...
Josef Kufner avatar 22.7.2007 16:46 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: skript pro spuštění několika konzolí s právy root
man xte
man xvkbd
A nezapomeň si uvědomit, co kterému programu patří a kterému uživateli patří který program.
Hello world ! Segmentation fault (core dumped)
19.7.2007 10:52 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: skript pro spuštění několika konzolí s právy root
Odpovědět | | Sbalit | Link | Blokovat | Admin
Myslím, že pro tento účel by bylo vhodnější použít sudo, než někam ukládat heslo roota do souboru. Ze skriptu spustit xterminály s nastavením velikosti, umístění a příkazu (skriptu), který se má v xtermu vykonat. Ten by již používal sudo. Samozřejmě místo xtermu lze volat jiný xkový terminál.
21.7.2007 21:02 1john2 | skóre: 35 | blog: jo12hn | zlín, brno
Rozbalit Rozbalit vše Re: skript pro spuštění několika konzolí s právy root
no tohle vsechno je mi jasne. mam jediny problem. v gnome-terminal,ktery pouzivam, existuji panely, ktere se oteviraji klavesovou zkratkou, ja bych potreboval vedet, jakym prikazem nahradit vstup z klavesnice, a potrebobnou klavesovou zkratku odeslat nekde ze skriptu. predstavuju si to nejak takto: sudo gnome-terminal

zadam heslo

#ted gnome-terminalu poslu klavesovou zkratku a on otevre v jednom okne vice panelu

#neco jako echo "t" > /dev/stdin #to "t" je klavesova zkratka pro otevreni noveho panelu, tento prikaz mi #to "t" ovsem pouze vypise na obrazovku=(

tusite nekdo jak na to? nebo na to jdu uplne blbe? nebo se z toho popisu neda pochopit o co mi jde?
21.7.2007 23:28 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: skript pro spuštění několika konzolí s právy root
Myslel jsem, že by mohlo fungovat
gnome-terminal --tab --execute něco ale u mě to nové taby v existujícím terminálu nevytváří, tak to asi chápu nějak špatně (možná se na to musí jít přes bonobo továrnu ;-)).
Co se týče těch klávesových zkratek, tak určitě nevede cesta přes /dev/stdin, ale přes vyvolání události Xserveru. Ale o tom pouze vím, že existuje takové volání Xlib.
Zkus pouvažovat o jakékoli jiné možnosti, která by ti práci zpohodlnila. Co třeba na klávesovou zkratku namapovaný prohlížeč /var/log/messages nebo tak něco?
22.7.2007 16:22 1john2 | skóre: 35 | blog: jo12hn | zlín, brno
Rozbalit Rozbalit vše Re: skript pro spuštění několika konzolí s právy root
konecne neco co me trochu postrcilo=) kazdopadne diky za nakopnuti to namapovani /var/log/messages zkusim, musim prijit na to jak, at z toho taky neco mam

no bonobo my cca pred tremi dny celkem osklive zhavarovalo, a rozhodilo vsechny ikonky, panely a jine blbinky, trvalo mi dva dny nez se mi to podarilo vsechno nastavit z5, mozna sem se mu nekde primichal do zeli=(

jak velky problem muze byt to vyvolani udalosti Xserveru pomoci Xlib? ma cenu se do toho poustet?
22.7.2007 16:41 Lu-Tze | skóre: 15 | blog: Lu-Tzeho blog
Rozbalit Rozbalit vše Re: skript pro spuštění několika konzolí s právy root
It is meant to be used like this: gnome-terminal --window --tab --window --tab --tab

http://www.mail-archive.com/gnome-list@gnome.org/msg01394.html
Josef Kufner avatar 22.7.2007 17:02 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: skript pro spuštění několika konzolí s právy root
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ale jak tak na to koukám, radši se ještě jednou zamysli nad tím, co doopravdy chceš udělat a jestli k tomu nevede jednodušší cesta a jestli vůbec je potřeba to dělat. Otevírat si terminál pod rootem není moc rozumné a vlastně bys to vůbec neměl potřebovat.

Celkem často, když dělám programy, které spolu komunikují, si píšu testovací scripty, které otevírají terminály na přesně definovaných pozicích a rovnou se v těch terminálech pouští nejrůznější věci. Všecky terminály však běží pod obyčejným uživatelem a jen programy v nich pomocí sudo dostanou potřebná práva (např. tcpdump).

Příklad takové věci je např. tu:
#!/bin/bash
xterm -T "Server" -geometry 120x20+0+0 -e ./run-server & pl="$pl $!"
xterm -T "Client 1" -geometry 60x20+0+300 -e ./run-client 1 & pl="$pl $!"
xterm -T "Client 2" -geometry 60x20+400+300 -e ./run-client 2 & pl="$pl $!"
echo -n Press enter to kill... ; read
kill $pl
kde ./run-* jsou malé scripty, které spustí co mají a obvykle obsahují nějaký ten balast okolo jako třeba sleep a počkání na entr po ukončení (read).
Hello world ! Segmentation fault (core dumped)
22.7.2007 21:46 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: skript pro spuštění několika konzolí s právy root
Souhlas. Sudo lze nastavit tak, aby pro určité příkazy nevyžadovalo heslo roota. Celkově mi to přijde, že původní dotaz vycházel ze světa čistě klikacích aplikací a autor jakoby skoro hledal nějaký záznamník maker na klikání a psaní znaků.

Zadání mi přijde celkem standardní, jenom bych je řešil také standardními, výše uvedenými nástroji - sudo, xterm (nebo jiný terminál plně ovladatelný z příkazové řádky).

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.