Questo è un problema perpetuo per le persone che sviluppano i file system FUSE. This link may help (è abbastanza letteralmente troppo da consolidare in una singola risposta). La soluzione prevede una sostituzione just-in-time di fusermount e (a seconda) alcune opzioni aggiuntive a valgrind per impedirne il tracciamento dei bambini.
In realtà, se si esegue il mio FS sotto valgrind, si ottiene questa uscita (sì, abbastanza persone avuto quel problema che ho effettivamente rilevato valgrind fase di start up e visualizzato il link):
[email protected]:~ # valgrind xsfs /xs
==9479== Memcheck, a memory error detector.
==9479== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
==9479== Using LibVEX rev 1884, a library for dynamic binary translation.
==9479== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
==9479== Using valgrind-3.4.1, a dynamic binary instrumentation framework.
==9479== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
==9479== For more details, rerun with: -v
==9479==
******** Valgrind has been detected by xsfs
******** If you have difficulties getting xsfs to work under Valgrind,
******** see the following thread:
******** http://www.nabble.com/valgrind-and-fuse-file-systems-td13112112.html
******** Sleeping for 5 seconds so this doesn't fly by ....
Il la cosa più semplice da fare consiste nel debugging di una macchina virtuale usa e getta in esecuzione come root, in cui è possibile abbandonare il bit setuid e utilizzarlo. Assicurati di testare il tuo codice per non avere perdite o violazioni, è abbastanza facile testare qualsiasi codice di libreria collegata che non utilizza il fusibile. Distribuisci il tuo build 'valgrind-clean' e nota che lo hai fatto nella documentazione.
Quindi, prendi alcuni bit da valgrind/valgrind.h
per rilevarlo e mostra un breve messaggio per quelli che vanno avanti ed eseguirlo comunque. Gli hacker per aggirare il problema richiedono una cooperazione di base, e francamente, sono molto più facili da fare in una sandbox altrettanto bene.
È anche abbastanza facile rifiutarsi di eseguire sotto valgrind con il bit setuid attivato, mostrando un messaggio utile per le persone che lo trasformano di sconto su se lo desiderano davvero.
fonte
2009-11-09 15:48:46
A volte, questo è solo non è possibile :) –
Questo accade anche quando le cose erano Esegui come utente root :) Il modo migliore è cambiare i permanenti per rimuovere "s" ed eseguire –