Newsgroup: it.comp.os.linux.iniziare
Titolo: Problema con mini script (lancio ff un pagina sul disco)

Ciao,
ho fatto un miniscript che comprende alcuni comandi.
Al termine dei comandi vorrei lanciare una pagina html, salvata sul 
disco, con Firefox ma mi da errore.
C'è un modo per superare l'ostacolo?
Grazie.
 
#!/bin/sh
 
cp /home/xoni/script-nuovi/prova/hosts /etc
firefox "/home/xoni/script-nuovi/CSS/pagina.html"
 
L'errore, avviando necessariamente lo script con sudo, è il seguente
 
sudo ./mioscript.sh
[sudo] password di xoni:
Running Firefox as root in a regular user's session is not supported. 
($XAUTHORITY is /home/xoni/.Xauthority which is owned by xoni.)
 
Grazie.

 ($XAUTHORITY is /home/xoni/.Xauthority which is owned by xoni.)
 
bye,
 
-- 
 
piergiorgio

Il 10/08/20 19:35, Zebra ha scritto:

Come ti e' stato detto a root non sono consentite azioni potenzialmente 
pericolose, se vuoi lanciare firefox nello script prova a farlo col comando:
sudo -u <user> firefox <url>
 
angelo


firefox sta girando come root ma cerca di utilizzare la sessione grafica 
dell'utente xoni. non è permesso. modifica lo script che esegua con sudo 
solo i comandi che richiedono i privilegi di root.
 

 solo i comandi che richiedono i privilegi di root.
 
Dici che e' solo per questo? Ho scritto una cavolata allora?
Tempo fa in una precedente versione di OpenSuse quando mi loggavo come 
root non mi era consentito di scaricare ne' con http ne' con ftp dando 
come giustificazione proprio motivi di sicurezza.
 
angelo


il messaggio dice quello: se poi loggandosi con interfaccia grafica come 
root non fuziona lo stesso non te lo so dire, ma in quel caso non parte 
nemmeno perché firefox non è autorizzato a connettersi al server grafico.
 


Chiamando uno script esterno (non so come di potrebbe fare)...
Una soluzione non esiste?


In questo modo chiamo FF in modalità root, mi servirebbe il contrario 
nello script, cioè chiamarlo in modalità sessione, come osservato da da 
Sartor. ;) Mi sembra quasi impossibile che non ci sia soluzione.
Help me!


Purtroppo devono "convivere". Chiamando uno script esterno  o indicando 
che quel comando non deve essere root (non so come fare)?
Grazie.

 Help me!
 
No, in questo modo, come root, chiami FF in modalita' <user> col comando
   "sudo -u <user> FF <url>"
sudo da solo serve per assumere l'identita' root, invece con l'opzione 
"-u <user>" consente di agire come <user>.
Oppure ho capito male?
 
angelo

 Grazie.
 
vedo che fai una cp e presumibilmente è quel comando che ha bisogno dei 
privilegi root. invocalo con 'sudo cp' e esegui lo script come utente 
normale.
 


Adesso provo.

On 11/08/20 17:25, angelo wrote:

Funziona!!! :)
Rimane un solo problema (al momento :) ): come faccio ad uscire dallo 
script?
Ho provato exit ma non va...


Il metodo indicato da Angelo va.
Come faccio ad uscire dallp script?

 Come faccio ad uscire dallp script?
 
devi semplicemente lanciare firefox in background.
 

 Ho provato exit ma non va...
 
Finche' FF rimane aperto lo script non si chiude, io non conosco 
soluzioni al problema...
 
angelo


Prima dello script? Lo script non si chiude lo stesso...


E' un problema. Mi rimane il terminale aperto.
Rumble numble... "ho bisogno di input"...


Prova un po’ sta roba:
 
pippo.sh
-----------
#!/bin/bash
 
/usr/bin/firefox 
go.byoblu.com
 &
sleep 10
exit
----
 
Ora apri il terminale (quello che poi si dovrà chiudere).
E lanci:
 
$ source pippo.sh
 
 
Cosa succede:
 
1- si apre firefox
 
2- viene buttato in backgorund
 
3- lo script attende 10 secondi (che non servono a nient’altro che afar
   capire cosa sta succedendo, quindi poi magari questo sleep lo togli)
 
4- infine il terminale si chiude lasciando aperto firefox
 
Il trucco è usare source o “.” per avviare lo script.
 
Prendi il tutto come un “input” perché non ho capito cosa devi fare
precisamente.


no, dentro lo script. invece di lanciarlo normalmente lo lanci in 
background, firefox va in esecuzione e lo script termina regolarmente.
 


Se leggi l’altro ramo del topic, l’OP laentava il terminale
che resta aperto dopo l’esecuzione. Gli ritorna il prompt
della shell ma dice che vuole anche chiudere il terminale
alla fine dello script.
Se ho ben capito alla fine deve rimanere con la sola finestra 
di firefox. Soluzione al volo richiamare lo script con source
o col punto “.” per capirci.


beh se lo manda in background da dentro uno script non c'è alcun 
problema poi a chiudere il terminale. fintanto è aperto risulta 
attaccato al tty, ma una volta chiuso si stacca senza problemi.
 

 Una soluzione non esiste?
 
L'altra soluzione e` evitare completamente
di eseguire un programma, che richiede X11,
da uno script shell.
 
Questo potrebbe creare diversi problemi,
non ultimo questo qui riportato.
 
Un'altra soluzione e` evitare di usare
l'utente root.
 
Non saprei, sarebbe da capire cosa esattamente
richieda questa costruzione.
 
Magari si puo` fare in maniera piu` elegante,
sapendo pero` cosa si vuole raggiungere.
 
bye,
 
-- 
 
piergiorgio


Da come ho capito io vuole che il terminale si chiuda automagicamente
senza doverlo chiudere a mano altrimenti non vale... Credo.
Vedi l’altro ramo del topic dove ho proposto la soluzione con
il source.

 il source.
 
  Esegue lo script con exec.
 
 
  Ciao,
 
 
Alessandro
 
 
 


Niente di trascendentale, avviare uno script come utente root ed avviare 
una pagina web in firefox.
Si, funziona! :)
Grazie.
 


Prego.
Per la prossima volta spiega meglio cosa devi fare, perché
se dici: “niente di trascendentale avviare script come root
e avviare pagina web in FF”, allora la mia soluzione non è
necessaria...
Devi spiegarti meglio quando chiedi, in questo caso devi
dire come precisamente lanci lo script, tipo con il doppio
click su un’icona, oppure aprendo un terminale a mano e poi
vuoi che si chiuda in automatico (chissà poi perché... anche
questos e lo spieghi chiaramente aiuta a dare risposte e
suggerimenti calzanti), oppure potresti voler lanciarlo via
cron o in modo automatizzato in seguito ad un certo evento.
 
Come l’hai chiesta tu, basta mettere & dopo il comando di
lancio di FF. lui se ne va in backgound e lo script termina,
ritorni nel prompt del terminale col cursore pronto in attesa.
È il comportamento giusto e normale.
 
Se invece vuoi ottenere un comportamento altro, tipo con
terminale che poi si chiude da solo, allora è un altro
discorso. Ecco perché dico, va specificato meglio quello
che vuoi fare e il comportamento che vuoi ottenere.
Altrimenti il problema è capire cosa hai in mente tu e si
perde tempo a rispondere in modo non risolutivo.
Va be’ se hai risolto così tantomeglio, ciao!


Non lo sapevo nemmeno prima di chiedere come precisamente funzionasse e 
quale comportamento avesse. Step by step ci siamo riusciti. Secondo me è 
la cosa più importante. Alcuni comportamenti per me erano 
imprevedibili/imprevisti.
Sul discorso bottone da lanciare, eventualmente, apro un altro tread.
Mi hai dato un'ulteriore suggerimento su come migliorare ulteriormente 
questo script, scusa anche per imparare qualcosa di nuovo.
Ciao e grazie a te e a tutti. ;)

 imprevedibili/imprevisti.
 
Se e` cosi`, per la prossima volta,
spiega _prima_ per filo e per segno
cosa vuoi ottenere e solo dopo come
lo hai implementato ed infine quale
problema questa implementazione ti
abbia dato.
 
E non partire dall'errore, senza
spiegare cosa e come.
 
Altrimenti tutto il discorso consiste
nel cercare di capire le tue intenzioni,
il che puo` essere interessante, ma
anche noioso...
 
Alla prossima,
 
bye,
 
-- 
 
piergiorgio


Ci riprovo. ;)

 Grazie.
 
Facendo alcune prove per il problema della cartella/script ho notato che 
se avvio gli script da terminale Firefox viene avviato correttamente 
altrimenti, se faccio "esegui nel terminale", utilizzando il file 
manager, lo script viene eseguito, (ovviamente se il file manager è 
avviato da utente root), fino all'avvio di FF. Il comando FF non so 
viene effettivamente avviato, so solo che il comando non è comunque 
eseguito.
Help me!
Soluzioni?