J'essaie d'exécuter ADB sur un serveur Linux avec plusieurs utilisateurs où je ne suis pas root (pour jouer avec mon émulateur Android). Le démon adb écrit ses journaux dans le fichier /tmp/adb.log
qui semble malheureusement être codé en dur dans ADB et cette situation ne va pas changer .
Donc, adb ne parvient pas à terme, donnant l'erreur évidente: cannot open '/tmp/adb.log': Permission denied
. Ce fichier est créé par un autre utilisateur et /tmp
possède un bit collant. Si je démarre adb en le adb nodaemon server
faisant écrire sur stdout, aucune erreur ne se produit (j'ai également configuré son port sur une valeur unique pour éviter les conflits).
Ma question est: existe-t-il un moyen de faire en sorte que la BAD écrive dans un autre fichier que /tmp/adb.log
? Plus généralement, existe-t-il un moyen de créer une sorte de lien symbolique spécifique au processus? Je veux rediriger tous les accès aux fichiers /tmp/adb.log
vers, en disant, un fichier ~/tmp/adb.log
.
Encore une fois, je ne suis pas root sur le serveur, donc chroot
, mount -o rbind
et ce chmod
ne sont pas des options valides. Si possible, je ne voudrais pas modifier les sources ADB, mais sûrement s'il n'y a pas d'autres solutions, je le ferai.
PS Pour le cas ADB spécifique, je peux recourir à la redirection adb nodaemon server
avec nohup
et avec la sortie, mais la question générale est toujours d'actualité.
LD_PRELOAD
astuces, mais ce serait plus compliqué.
/home/$USER/tmp/adb.log
et de reconstruire adb :)
/tmp/adb.log
, ou même monter son propre/tmp
tout à fait privé . faireman unshare
etman namespaces
etman nsenter
.