spouštění příkazů po spuštění konsole

Dobrý večer,
zde http://forum.fedora.cz/read.php?2,21432 jsem se dočetl, že mohu spustit nový příkaz v terminálu příkazem xterm -e. Rád bych ale použil KDE konzoli. V nápovědě jsem se dočetl, že příkaz konsole -e spustí příkaz za e jako příkaz ke spuštění. Existuje nějaký, který spustí příkaz poté co konzoli spustí?
Děkuji.

Priznam se, ze prilis nechapu dotaz. Pusteni “xterm -e mc” udela to, ze spusti xterm a v nem “mc”. Z takovehoto prikazu si muzes udelat alias xterm=“xterm -e mc”, nebo si muzes upravit zastupce konzole tak, aby poustel rovnou konzole a v ni nec.

Pokud chces po pusteni jakehokoli terminalu v nem neco pustit tak pouzij ~/.bash_profile (samozrejme pokud pouzivas bash) a pridej si do nej co chces poustet. Upozornuji, ze to ale muze mit spoustu nasledku, protoze bash je zakladni shell pro terminal a pouziva ho mnozstvi aplikaci.

Aha, to mě také funguje.
Ale třeba konsole -e “cd /home” vypíše Upozornění: Nelze najít ‘cd /media’, spouštím ‘/bin/bash’ jako náhradu. Zkontrolujte, prosím, nastavení svého profilu.
Příkaz konsole -e ls konsoli spustí a hned ji zase vypne.

“-e” spustí příkaz a po jeho ukončení konzoli zavře, to je standardní chování. Stejně jako xterm. Program “konsole” neznám, ale manuálové stránky říkají něco o parametru --noclose.

Pro cd v xtermu funguje: xterm -e “cd /home; bash”. V případě konsole by mohlo opět pomoct --noclose.

Po spoustě pokusech se mi to v konsole rozběhnout nepodařila. V Xtermu ano. Mám ještě jeden problém, skript, který chci spouštět po startu musí mít oprávnění root. Lze toto nějak nastavit, aniž bych pokaždé musel zadávat heslo?
Děkuji.

Skript ze trvale oznacit ze ma byt spousten s pravy uzvatele ktery soubor vlastni. Slouzi k tomu tzv. SUID bit. Tedy nastav soubor na vlastnika root a pridel mu SUID bit. Uporoznuji, ze se jedna o bezpecnostni riziko - skript by mel byt nepristupny pro jakekoli dalsi uzivatele, protoze jeho upravou muze kdokoli pustit cokoli jako root.

Ve fedoře je setuid z bezpečnostních důvodů u skriptů vypnutý (funguje u binárek). Spouštění pod rootem obecně pod jakýmkoliv účtem jde zařídit přes příkaz sudo (případně s nastavením parametru nopasswd.

li737 napsal(a):

Ve fedoře je setuid z bezpečnostních důvodů u
skriptů vypnutý (funguje u binárek).
Spouštění pod rootem obecně pod jakýmkoliv
účtem jde zařídit přes příkaz sudo
(případně s nastavením parametru nopasswd.

Tak proto mi to nefunguje. Můžete mi popsat ten způsob pomocí sudo? V manuálové stránce jsem parametr nopasswd nenašel.

Sudo ma konf. soubor /etc/sudoers tam se dává ten parametr pro konkrétní účty nebo skupiny. Jsou tam příklady…

Díky.
Našel jsem vše co jsem potřeboval, nyní už skript spustím z běžného účtu jako root.
Jen jsem chtěl nastavit, aby se spustil po spuštění. Vytvořil jsem si soubor ve složce ~/.kde/Autostart, nastavil mu práva 755. Když skript pustím ručně, vše proběhne, ale po startu se ne a ne spustit.
Nevíte co s tím?

Over si, ze se zda se ti ten skript skutecne nepousti (pridej do nej treba echo “ahoj” > /tmp/ahoj) nebo zda je jen problem spustit to co tam chces spustit. Je mozne ze se autostart spousti prilis brzy - treba jeste neni nabehle KDE a to co chces pustit selze (chyby by mohly byt zapsany v ~/.xsession-errors).

Skript se mi spouští, když dám příkaz do souboru ve složce Autostart, tak se provede. Když dám ale příkaz do souboru, který ten soubor spouští, už se neprovede. Nejspíš to tedy bude tím, že ještě není naběhlé KDE.

máš k tomu příkazu celou cestu ?
je už načtený .profile s PATH ?

Celou cestu mám - sudo /home/knezi/.local/bin/macros-run.
PATH nejspíše tedy nepotřebuji, ne?

Tak tam pridej sleep. V tom skriptu mas pak taky cele cesty?

knezi napsal(a):

Celou cestu mám - sudo
/home/knezi/.local/bin/macros-run.
PATH nejspíše tedy nepotřebuji, ne?

K tomuhle ne, ale v tom macros-run možná ano. Nemůžeš tam dát nějaký výstup do souboru , abys viděl co to dělá ?
Vypsat si proměnné, which na spouštěný příkaz apod ?

Tak jsem zjistil, že problém je jinde. Terminál se spustí, ale hned se ukončí. Používám tam příkaz cat a vypisuji soubor, ke kterému má přístup jen root. Jako chybu to píše, že nemá přístup. Já tam mám příkaz sudo, tak tedy nevím proč nemá přístup.

Pomoci sudo se pousti cely ten skript nebo jen neco v obsahu toho skriptu?

Celý skript,
ve složce Autostart mám sudo /home/knezi/.local/bin/macros-run

Sudo je potřeba dát do skriptu ke každému příkazu který potřebuje práva roota. Skript lze spouštět bez Sudo pokud má nastavená práva r a x.