PDA

View Full Version : Questo è difficile... :-)


canislupus
15-05-2005, 17:10
Allora ragazzi adesso cerco di spiegarvi un altro aiuto che mi serve.
Io per connettermi ad internet devo lanciare ogni volta da riga il comando il file eciadsl-start (si trova dentro /usr/local/bin). Per farlo devo entrare da root in quella cartella e digitare ./eciadsl-start
La mia domanda è molto semplice. Vorrei creare un collegamento sul desktop che mi permetta di lanciare quel comando senza dover ogni volta farlo da riga di comando. Premetto che non basta il semplice chmod 777 perchè il file fa partire anche un processo (avevo pensato quindi di usare una sorta di chmod 777 e aggiungere anche il suid).
Sapete come posso fare ?
Grazie
Canis

P.S. Spero di essermi spiegato... In pratica si tratta di creare un collegamento all'eseguibile che mi permetta di avviarlo anche come semplice utente e non come root... (se utlizzo Alt+F2 e poi scrivo il comando, mi fa tutto, ma in pratica non mi fa navigare nonostante abbia poi l'indirizzo IP assegnato dal mio provider !!!).

andretta
15-05-2005, 18:00
rimetti i permessi com'erano prima,

installa sudo,

man sudoers e man sudo.

canislupus
15-05-2005, 19:10
Ehm veramente io non vorrei semplicemente dare dei permessi per eseguire il file, ma vorrei anche poter creare un collegamento sul desktop (insomma voglio risparmiare le dita per digitare sulla tastiera e usare solo un clic del mouse... :D ). E' quindi possibile creare un collegamento al file eseguibile facendo sì che questo venga appunto lanciato dal semplice collegamento presente sul desktop ?

Artemisyu
15-05-2005, 19:13
Ehm veramente io non vorrei semplicemente dare dei permessi per eseguire il file, ma vorrei anche poter creare un collegamento sul desktop (insomma voglio risparmiare le dita per digitare sulla tastiera e usare solo un clic del mouse... :D ). E' quindi possibile creare un collegamento al file eseguibile facendo sì che questo venga appunto lanciato dal semplice collegamento presente sul desktop ?

sudo bla bla bla :D

lo metto come comando nell'icona di avvio che crei sul desktop.
tutto li :)

ciao ciao!

canislupus
15-05-2005, 19:53
Ehm sono newbie... mi spieghi un attimino pià preciso ?
So creare i link simbolici, ma creare un'icona di avvio non so onestamente come farla. Come windows manager uso KDE... :)

Artemisyu
15-05-2005, 20:00
Ehm sono newbie... mi spieghi un attimino pià preciso ?
So creare i link simbolici, ma creare un'icona di avvio non so onestamente come farla. Come windows manager uso KDE... :)

perfetto... io uso gnome :D

comunque dovresti fare destro sul desktop, crea qualcosa_che_non_ricordo, crea collegamento.
A quel punto la schermata è simile a quella di windows... scegli il titolo, metti il comando, il commento, e l'icona.
Schiaccio ok e comparirà sul desktop

tutto qui :)

ciao ciao!

canislupus
15-05-2005, 20:30
Aspetta che switcho un attimo su linux... Cmq ho paura che non mi sono spiegato bene.. :(

canislupus
15-05-2005, 20:59
Allora ecco quello che ho fatto:

Clic con il tasto destro del mouse sul desktop.
Poi ho scelto Crea collegamento ad Applicazione.
Poi sotto applicazione ho inserito i seguenti valori nei diversi campi:

Comando: ./eciadsl-start
Percorso: /usr/local/bin

Poi nelle Opzioni Avanzate ho inserito: Esegui la finestra in un terminale ed esegui come altro utente (root).
Il problema è il seguente. Se faccio partire tutto automaticamente mi funziona fino all'ultimo punto nel quale sembra che si blocchi.
Di seguito ti posto la versione corretta e quella sbagliata (automatica):

VERSIONE CORRETTA

linux:/home/canislupus # cd /usr/local/bin
linux:/usr/local/bin # ./eciadsl-start

[EciAdsl 1/5] Setting up USB support...

Preliminary USB device filesystem is OK

[EciAdsl 2/5] Uploading firmware...

GlobeSpan USB ADSL WAN Modem compatible modem found (in 2172ms)
eciadsl-firmware: success
firmware loaded successfully

[EciAdsl 3/5] Synchronization...

Progress indicator is 01 No Signal !
Progress indicator is a0 No Signal !
Progress indicator is a1 Training...
Progress indicator is a1 Training...
Progress indicator is 43 Training...
Progress indicator is a4 Training...
Progress indicator is a4 Training...
Progress indicator is 74 Training...
Progress indicator is a6 Training...
Progress indicator is 77 Training...
Progress indicator is 75 Training...
Progress indicator is aa Training...
Progress indicator is 72 Training...
Progress indicator is ad Training...
eciadsl-synch: success
Synchronization successful

[EciAdsl 4/5] Connecting to provider...

using channel 3
Using interface ppp0
Connect: ppp0 <--> /dev/pts/4
sent [LCP ConfReq id=0x1 <magic 0x619e8f07>]
sent [LCP ConfReq id=0x1 <magic 0x619e8f07>]
sent [LCP ConfReq id=0x1 <magic 0x619e8f07>]
rcvd [LCP ConfAck id=0x1 <magic 0x619e8f07>]
rcvd [LCP ConfReq id=0x3 <auth chap MD5> <magic 0x3db4a672>]
sent [LCP ConfAck id=0x3 <auth chap MD5> <magic 0x3db4a672>]
rcvd [CHAP Challenge id=0x1 <f047ae084ff071aaece6ee771c3e41a6>, name = "c72g1.rms-atm1"]
sent [CHAP Response id=0x1 <0ab5a67d0f212e3b13e21a665af30e01>, name = "kingofminos@tiscali.it"]
rcvd [CHAP Success id=0x1 ""]
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 213.205.16.18>]
sent [IPCP ConfAck id=0x1 <addr 213.205.16.18>]
rcvd [IPCP ConfNak id=0x1 <addr 84.222.129.9> <ms-dns1 213.205.36.70> <ms-dns3 213.205.32.70>]
sent [IPCP ConfReq id=0x2 <addr 84.222.129.9> <ms-dns1 213.205.36.70> <ms-dns3 213.205.32.70>]
rcvd [IPCP ConfAck id=0x2 <addr 84.222.129.9> <ms-dns1 213.205.36.70> <ms-dns3 213.205.32.70>]
local IP address 84.222.129.9
remote IP address 213.205.16.18
primary DNS address 213.205.36.70
secondary DNS address 213.205.32.70
Connection successful

[EciAdsl 5/5] Setting up route table...

Waiting for ppp0...
Adding default route... default route to ppp0 already exists
linux:/usr/local/bin #

VERSIONE SCORRETTA (Automatica)

[EciAdsl 1/5] Setting up USB support...

Preliminary USB device filesystem is OK

[EciAdsl 2/5] Uploading firmware...

GlobeSpan USB ADSL WAN Modem compatible modem found (in 2172ms)
eciadsl-firmware: success
firmware loaded successfully

[EciAdsl 3/5] Synchronization...

Progress indicator is 01 No Signal !
Progress indicator is a0 No Signal !
Progress indicator is a1 Training...
Progress indicator is a1 Training...
Progress indicator is 43 Training...
Progress indicator is a4 Training...
Progress indicator is a4 Training...
Progress indicator is 74 Training...
Progress indicator is a6 Training...
Progress indicator is 77 Training...
Progress indicator is 75 Training...
Progress indicator is aa Training...
Progress indicator is 72 Training...
Progress indicator is ad Training...
eciadsl-synch: success
Synchronization successful

[EciAdsl 4/5] Connecting to provider...

using channel 3
Using interface ppp0
Connect: ppp0 <--> /dev/pts/4
sent [LCP ConfReq id=0x1 <magic 0x619e8f07>]
sent [LCP ConfReq id=0x1 <magic 0x619e8f07>]
sent [LCP ConfReq id=0x1 <magic 0x619e8f07>]
rcvd [LCP ConfAck id=0x1 <magic 0x619e8f07>]
rcvd [LCP ConfReq id=0x3 <auth chap MD5> <magic 0x3db4a672>]
sent [LCP ConfAck id=0x3 <auth chap MD5> <magic 0x3db4a672>]
rcvd [CHAP Challenge id=0x1 <f047ae084ff071aaece6ee771c3e41a6>, name = "c72g1.rms-atm1"]
sent [CHAP Response id=0x1 <0ab5a67d0f212e3b13e21a665af30e01>, name = "kingofminos@tiscali.it"]
rcvd [CHAP Success id=0x1 ""]
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 213.205.16.18>]
sent [IPCP ConfAck id=0x1 <addr 213.205.16.18>]
rcvd [IPCP ConfNak id=0x1 <addr 84.222.129.9> <ms-dns1 213.205.36.70> <ms-dns3 213.205.32.70>]
sent [IPCP ConfReq id=0x2 <addr 84.222.129.9> <ms-dns1 213.205.36.70> <ms-dns3 213.205.32.70>]
rcvd [IPCP ConfAck id=0x2 <addr 84.222.129.9> <ms-dns1 213.205.36.70> <ms-dns3 213.205.32.70>]
local IP address 84.222.129.9
remote IP address 213.205.16.18
primary DNS address 213.205.36.70
secondary DNS address 213.205.32.70
Connection successful

[EciAdsl 5/5] Setting up route table...

Waiting for ppp0...
Adding default route... default route to ppp0 already exists

In pratica sembra che non termini l'ultima operazione restituendo quindi di nuovo il terminale. Non capisco perchè succede questo. Lo stesso problema me lo da anche se faccio esegui comando... :mbe:
Ah volevo aggiungere che nella versione corretta, guardando il monitor delle interfacce di rete trovo anche la connessione ppp(0), mentre nella versione sbagliata non è presenta (in pratica non avviene realmente la connessione e quindi l'ip non viene assegnato !!!).

NetEagle83
15-05-2005, 22:31
Quando crei il collegamento nel tab "Applicazione" prova a mettere il comando

gksu /usr/local/bin/eciadsl-start

in pratica quel "gksu" è la versione grafica di sudo, quando clicchi ti chiederà di inserire la password di root in una finestrella. Così non hai bisogno di mettere "esegui come altro utente". Lascia però "Esegui la finestra in un terminale". Prova così e vedi che succede...

canislupus
15-05-2005, 23:39
Allora ho provato a scrivere quello che mi hai detto, ma non mi accetta il comando gksu (credo che non sia installato l'ambiente grafico di sudo). Cmq ho provato a mettere sudo e mi da questo risultato:

[EciAdsl 1/5] Setting up USB support...

Preliminary USB device filesystem is OK
/usr/local/bin/eciadsl-start: line 326: lspci: command not found
/usr/local/bin/eciadsl-start: line 369: lspci: command not found

[EciAdsl 2/5] Uploading firmware...

Warning: firmware seems to be already loaded
Check that your modem is OFF before running eciadsl-start (if modem is
powered on, then unplug/replug it)

[EciAdsl 3/5] Synchronization...

Progress indicator is 01 No Signal !
Progress indicator is a0 No Signal !
Progress indicator is a1 Training...
Progress indicator is a1 Training...
Progress indicator is 43 Training...
Progress indicator is a4 Training...
Progress indicator is a4 Training...
Progress indicator is 74 Training...
Progress indicator is a6 Training...
Progress indicator is 77 Training...
Progress indicator is 75 Training...
Progress indicator is aa Training...
Progress indicator is 72 Training...
Progress indicator is ad Training...
eciadsl-synch: success
Synchronization successful

[EciAdsl 4/5] Connecting to provider...

nice: pppd: No such file or directory
ERROR: failed to connect

In pratica non riesce ad aprire la connessione pppd e di conseguenza collegarsi al mio provider e farsi assegnare un indirizzo ip. Ho provato più volte, ma il problema continua a presentarsi. :muro:

Artemisyu
15-05-2005, 23:59
ma nella prima versione automatica poi internet andava?
Perchè il processo lo fa tutto... io non credo che si sia piantanto... non può restituirti il propt per il fatto che non sei nel prompt.. hai solo caricato un programma.
In teoria dovrebbe bastare chiudere il terminale.

hai provato quindi se internet va?

ciao ciao!

dierre
16-05-2005, 00:42
gksu != gksudo

fossi in te installerei sudo e gksudo (su ubuntu uno è dipendenza dell'altro mi pare) e poi useri "gksudo quellochedevofarpartire" è l'unico modo oltre a gksu

canislupus
16-05-2005, 08:58
ma nella prima versione automatica poi internet andava?
Perchè il processo lo fa tutto... io non credo che si sia piantanto... non può restituirti il propt per il fatto che non sei nel prompt.. hai solo caricato un programma.
In teoria dovrebbe bastare chiudere il terminale.

hai provato quindi se internet va?

ciao ciao!

Sì, ho provato. In pratica nella prima versione automatizzata (versione scorretta) non mi assegna neanche l'indirizzo IP se verifico con Monitor - Connessioni di rete. Ho aspettato anche diversi minuti, ma non mi fa navigare.

@dierre

sudo è già installato, gksudo invece credo che non esista per SUse, infatti non lo trovo in aclun repository su internet.

dierre
16-05-2005, 09:09
ma Suse non usa kde? Non è kdesu ?

PiloZ
16-05-2005, 09:59
ma non bastava metterlo in automatico nel runlevel che usa :mbe: :confused:

canislupus
16-05-2005, 10:14
Ehm ci sto capendo sempre meno... sono un niubbone non dimenticatelo... ;)

PiloZ
16-05-2005, 10:23
touch /etc/init.d/adsl

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/eciadsl-start
NAME=adsl

case "$1" in
start)
echo -n "Starting $NAME"
start-stop-daemon --start -q -x $DAEMON
echo "."
;;
stop)
echo -n "Stopping $NAME"
start-stop-daemon --stop -K -q -x $DAEMON
echo "."
;;

*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop}" >&2
exit 1
;;
esac

exit 0



vedi se funge sto script
per stopparlo
/etc/init.d/adsl stop
per lanciare l'adsl
/etc/init.d/adsl start

se funge avvisa che così il gioco è fatto :)

reeky
16-05-2005, 10:51
ma non bastava metterlo in automatico nel runlevel che usa :mbe: :confused:

oppure fare come ti avevo consigliato qui (http://www.hwupgrade.it/forum/showpost.php?p=8210919&postcount=6)? :stordita:

bye

dierre
16-05-2005, 10:56
Ehm ci sto capendo sempre meno... sono un niubbone non dimenticatelo... ;)


invece di mettere nel collegamento gksudo prova ad usare kdesu, Suse usa kde non gnome.

canislupus
16-05-2005, 11:46
@PiloZ

FENOMENO !!!

Sei un fenomeno. Funziona alla perfezione. Però se provo a staccare la connessione non cade (vabbè disconnetto usando il comando eciadsl-stop).
Però rimango del parere che è un po' assurda questa cosa. Ora tu mi hai aiutato creando uno script (cosa che io non sarei stato capace di fare perchè io e la programmazione siamo sempre stati distanti anni luce e non ci siamo mai voluti incontrare... :D ).
Senti riesci a spiegarmi perchè gli altri sistemi non funzionavano (uno non riusciva ad avviare pppd, mentre l'altro mi da persino l'ip, ma di fatto non potevo navigare perchè in realta non veniva creata la connessione punto-punto).

@dierre

kdesu mi si bloccava subito dopo la sincronizzazione e ho provato 1000 volte... :-(

PiloZ
16-05-2005, 12:03
:winner: :winner: :winner:
riuscire a trovare un escamotage per ste fesserie mi è venuto facile, ma spiegarti io perchè avevi gli altri problemi non saprei da dove iniziare visto che non lo uso io :fagiano: :D

Ciao :cool:

PiloZ
16-05-2005, 12:06
a quasi dimenticavo, ora devi linkarlo nel runlevel che usi.
che distro hai?
cat /etc/inittab |grep default
che ti risponde?

canislupus
16-05-2005, 12:25
L'ho fatto, però non capisco perchè mi dice che ho un runlevel di 3... Da quando a suo tempo avevo avuto problemi con l'installazione dei driver ati, mi sa che Suse parte sempre con runlevel 3... :cry: :cry: :cry:

# The default runlevel is defined here
id:3:initdefault:
# runlevel 0 is System halt (Do not use this for initdefault!)
# runlevel 6 is System reboot (Do not use this for initdefault!)

canislupus
16-05-2005, 12:28
ora devi linkarlo nel runlevel che usi.
che distro hai?

In pratica vuol dire che devo farlo partire in automatico quando si avvia linux ? (in modo che parta in automatico senza dover lanciare manualmente ?)

PiloZ
16-05-2005, 13:22
In pratica vuol dire che devo farlo partire in automatico quando si avvia linux ? (in modo che parta in automatico senza dover lanciare manualmente ?)
esatto
ln -s /etc/init.d/adsl /etc/rc3.d/S99adsl

dierre
16-05-2005, 13:29
e bravo piloz :Prrr:

canislupus
16-05-2005, 14:56
esatto
ln -s /etc/init.d/adsl /etc/rc3.d/S99adsl

Senti mi spieghi quello che starei facendo ?
Allora ln -s crea un link simbolico a /etc/init.d/adsl dentro /etc/rc3.d/S99adsl

Quell'rc3 serve per impostare quei servizi che partiranno con il runlevel 3 ? ma quel nome S99adsl come è venuto fuori ? E' un nome inventato oppure c'è una logica.
Ti faccio queste domande perchè voglio cercare di capire quello che sto facendo, così in un futuro possa farlo da solo senza infastidire per simili cose... :p

canislupus
16-05-2005, 15:01
Ok mi rispondo da solo... S penso che stia per servizio e il nr 99 l'hai scelto per dargli un numero alto ed evitare che magari ve ne fosse un'altro...
Cmq per la cronaca il comando deve essere nel mio caso:

ln -s /etc/init.d/adsl /etc/rc.d/rc3.d/S99adsl

Perchè altrimenti non funziona... :-)
Senti ma mi sapresti dire come far capire a Suse che voglio partire con runlevel 5 e non 3 ? Prima mi loggavo appunto come rl 5, ma in seguito a dei casini con l'installazione dei driver Ati avevo scritto una volta telinit 3 e da allora mi sa che si è impostata in automatico.

Pardo
16-05-2005, 16:20
No no, S=start oppure K=kill.
La K serve principalmente per far terminare puliti i daemon nei runlevel di shutdown (0 e 6) e manutenzione (1), ma si puo` usare anche x creare differenze personalizzate fra i 2,3,4,5 (d solito il 3 ha una K sul daemon di login grafico x es.).

Il numero stabilisce l'ordine di partenza...

E x partire a livello 5 basta ke metti il 5 nella linea initdefault ke hai quotato prima...

canislupus
16-05-2005, 16:40
Ehm come faccio a impostare l'initdefault a 5 ??? Con l'editor dei runlevel presente dentro yast/yast2 ?

Pardo
16-05-2005, 17:31
guarda, se ti senti maraglio puoi anche fare cosi`...

# cp /etc/inittab /etc/inittab.bak
# sed s/3:init/5:init/ /etc/inittab.bak > /etc/inittab

...ma una persona normale di solito si limita ad aprire /etc/inittab con un editor d testo qualunque e cambiare a mano il numerino...

canislupus
16-05-2005, 19:58
Allora sono andato dentro Yast2 e ho notato che ci sono 2 servizi che partono, uno si chiama adsl e l'altro rc5.c. Entrambi i servizi erano non in esecuzione automatica.
Ho avviato rc5.c e sembra che sia appunto partita anche l'adsl. Onestamente non capisco perchè... :confused:

canislupus
16-05-2005, 20:08
Allora aggiornamento... Tramite Yast2 ho scelto l'editor dei runlevel e da lì avevo scelto Abilita servizio. La cosa che non capisco è che se utilizzo la visualizzazione normale il servizio adsl e rc5.c mi appare con un Sì*, mentre nella visualizzazione per esperti dove specifica anche in vari runlevel me li imposta come No.
Cmq adesso di fatto per automatico con linux, ma continuo a non capire se questa voce rc5.c deve esserci oppure no tra i servizi ? Tu che mi dici ?