Mandi! Giuseppe Sacco
  In chel di` si favelave...

>> fallisce (rc=1).
> Hai verificato quale comando viene eseguito? Il primo argomento della execvp()
> deve essere un file binario, oppure uno di testo che inizi con «#!interpreter
> [optional-arg]» e dove «interpreter» dovrebbe essere un percorso (assoluto?)
> relativo ad un file binario.

Con le mie scarsissime competenze di C ho cercato di leggere il codice, e
sembra tutto a posto.

Il comando viene eseguito da qui:

        https://sourceforge.net/p/vchanger/code/ci/master/tree/src/bconsole.cpp

nella funzione issue_bconsole_command(), che poi richiama mypopen_raw() che
richiama do_mypopen_raw() per l'escuzione.


> Inoltre, prima della execvp(), c'è una chiamata a vlog.Debug(). Cosa c'è
> scritto nel debug? Il file eseguito è quello corretto?

Nei log vedo:

        Aug 29 09:36:16:  [8987]: ==== preforming REFRESH command
        Aug 29 09:36:16:  [8987]: running '/usr/sbin/bconsole -n -u 30'
        Aug 29 09:36:16:  [8987]: popen: child stdin uses pipe (4 -> 5)
        Aug 29 09:36:16:  [8987]: popen: child stdout uses pipe (6 -> 7)
        Aug 29 09:36:16:  [8987]: popen: forking now
        Aug 29 09:36:16:  [8987]: popen: parent closing pipe ends 4,7,-1 used 
by child
        Aug 29 09:36:16:  [8987]: popen: parent writes child's stdin to 5
        Aug 29 09:36:16:  [8987]: popen: parent reads child's stdout from 6
        Aug 29 09:36:16:  [8987]: popen: parent returning pid=8988 of child
        Aug 29 09:36:16:  [8987]: sending bconsole command 'update slots 
storage="VIPVE2RDX" drive="0"'
        Aug 29 09:36:16:  [8988]: popen: child closing pipe ends 5,6,-1 used by 
parent
        Aug 29 09:36:16:  [8988]: popen: child will read stdin from 4
        Aug 29 09:36:16:  [8988]: popen: child will write stdout to 7
        Aug 29 09:36:16:  [8988]: popen: child executing '/usr/sbin/bconsole'
        Aug 29 09:36:16:  [8987]: bconsole: exited with rc=1

e sembra tutto a posto, nel senso che tutto funziona fino alla execvp(), che
fallisce.


Ovviamente /usr/sbin/bconsole è il path corretto.


Volevo provare a mettere la shell all'utente bacula, giusto per capire se
così funziona, ma mi sembra una extrema ratio...

-- 
  Does anybody here remember Vera Lynn?
                                                        (Pink Floyd)


Rispondere a