Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    162

    Permessi di Apache su ttyS0

    Ciao a tutti ho un problema che mi rompe il capo da più giorni....

    Voglio scrivere su seriale ma Apache non ha i permessi per il localhost
    da poter fare questo.
    In SUSE c'e qualche programma per sbloccare la seriale ogni volta
    che Apache ne richiede l'utilizzo.?
    In caso non ci fosse come potrei dare i permessi ad Apache per
    far fare la funzione che voglio (scrivere sulla seriale)?

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    162

    script cgi bash sariale apache

    In poche parole, sto cercando di fare un sito web
    che comunichi con una scheda a dsPIC attraverso
    la porta seriale.
    Ho scritto fatto dei script in bash nei quali voglio
    che un carattere sia spedito alla scheda e
    questa di suo attivi un motore passo passo che un tempo T
    (T dipende dal carattere che premo).

    Ora se eseguo gli script da shell questi vanno,
    ma se dico ad Apache di eseguirmeli (es. http://localhost/cgi-bin/script)
    non c'è verso che me li esegua interamente (alcune istruzione le
    esegue, altre, vedi un carattere spedito su seriale, no).

    mi sapreste dare delle indicazioni su come oltrepassare il problema...?

  3. #3
    Devi dare all'utente di Apache (www-data) il permesso di esecuzione di questi script. Per farlo puoi usare il comando sudo. Io l'ho fatto per riavviare e spegnere pc remoti da web e funziona tranquillamente.
    Ciao
    It's just another bombtrack...
    Ogni can mena la coa, ogni coion vö gi' la soa!

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    162
    con www-data cosa intendi?
    una directory....?
    se si dove si trova

  5. #5
    Originariamente inviato da cencia
    con www-data cosa intendi?
    una directory....?
    se si dove si trova
    www-data è il nome dell'utente che esegue Apache. Ad esso devi associare i diritti di esecuzione degli script in questione usando il comando sudo.
    It's just another bombtrack...
    Ogni can mena la coa, ogni coion vö gi' la soa!

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    162
    scusa se ti rompo ancora....

    sul PC come apache sono localhost
    lo script lo eseguo come http://localhost/cgi-bin/script

    cosa devo fare con sudo?
    ho visto un pò di manualistica ma non riesco a
    combinare niente

    grazie ancora

  7. #7
    Nello script cgi richiami sudo + il comando/script bash che ti serve con una system.
    Esempio: ho uno script perl che scrive sulla seriale la parola homer tramite una system (è rozzo lo so, ma è solo per far capire).
    Per prima cosa devo dire a sudo che il comando per scrivere sulla seriale come utente www-data deve essere permesso, allora modifico il file /etc/sudoers di conseguenza col seguente comando (suppongo che il comando echo sia in /bin):
    # echo "www-data ALL = NOPASSWD: /bin/echo" >> /etc/sudoers
    Adesso nello script cgi quando voglio scrivere sulla seriale mi basta lanciare il seguente comando (sintassi perl):
    system "sudo echo homer > /dev/ttyS0"

    Spero di essere stato chiaro. Cerca di leggere un po' di documentazione su sudo e i permessi in generale.
    It's just another bombtrack...
    Ogni can mena la coa, ogni coion vö gi' la soa!

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    162
    ho fatto come mi hai detto ma non vedo risultati favorevoli...
    comunque provo a tentare in questi giorni, riprovo.

    la direttiva 'system' è di perl, non di bash....
    il mio script è in bash.

    e se il problema fosse che devo dare permessi
    alla porta seriale?

    Con il comando

    codice:
    echo "www-data ALL = NOPASSWD: /bin/echo" >> /etc/sudoers
    sono andato a modificare il file /etc/sudoers.

    ho fatto danni?

  9. #9
    Originariamente inviato da cencia
    ho fatto come mi hai detto ma non vedo risultati favorevoli...
    comunque provo a tentare in questi giorni, riprovo.

    la direttiva 'system' è di perl, non di bash....
    il mio script è in bash.

    e se il problema fosse che devo dare permessi
    alla porta seriale?

    Con il comando

    codice:
    echo "www-data ALL = NOPASSWD: /bin/echo" >> /etc/sudoers
    sono andato a modificare il file /etc/sudoers.

    ho fatto danni?
    Non hai fatto danni, adesso da web potrai usare echo come se fossi root. Nel caso il tuo script sia in bash il comando d'esempio si semplifica:
    sudo echo homer > /dev/ttyS0

    Non sapevo che il cgi di Apache funzionasse anche con script bash.
    It's just another bombtrack...
    Ogni can mena la coa, ogni coion vö gi' la soa!

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    162
    Ciao mitico,
    ho risolto....
    grazie tante dell'aiuto...
    era da un mesetto a fasi alterne che c'ero dietro.

    adesso funziona come voglio sia in perl che in bash.

    a presto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.