Utilisateur, groupe et permissions :)

Bonjour,

suite à la connexion d’un smartphone pour utiliser Android Studio 2.3.2, j’obtient l’erreur suivante :

05/23 09:52:56: Launching app
$ adb push /home/gregory/AndroidStudioProjects/MyApplication/app/build/outputs/apk/app-debug.apk /data/local/tmp/fr.polymorphisme.www.myapplication
com.android.ddmlib.AdbCommandRejectedException: insufficient permissions for device: udev requires plugdev group membership.

Aussi, je ne comprends pas ce que doit faire avec udev et le group plugdev.
Merci de votre aide.

Bonjour gregoryroche0

Il doit exister sur ton système un groupe nommé plugdev
dont le compte utilisateur qui a été utilisé pour lancer la ligne commande que tu cites ne fait pas partie.

Par exemple, comme on peut le voir dans la liste des groupes retournée par la commande groups,
mon compte utilisateur (michel) fait bien pas partie de ce groupe

michel@debg53sw:~$ groups
michel cdrom floppy audio dip video plugdev netdev lpadmin scanner bluetooth libvirt
michel@debg53sw:~$ 

Mais la commande groups lancée depuis le compte utilisateur que tu avais utilisé
montrera sans doute que tu ne fais pas partie du groupe plugdev


Pour que tu puisses lancer cette ligne de commandes,

  • soit tu relances ta commande depuis un compte utilisateur de ton système qui fait partie du groupe plugdev
  • soit tu utilises le compte super utilisateur (root) pour que ton compte utilisateur soit ajouté dans la liste des utilisateurs du groupe plugdev

Depuis ton compte utilisateur, la ligne de commandes suivante va ajouter ton compte utilisateur au groupe plugdev

su -c "usermod -a -G plugdev $USER"

ou bien, si tu n’as pas donné de mot de passe au compte root au cours de l’installation de debian,

sudo usermod -a -G plugdev $USER

ensuite, pour que cette modification soit prise en compte,
il te faudra fermer et ré-ouvrir ta session graphique (te déconnecter/reconnecter)

Après ça, avec la commande groups
tu devrais pouvoir vérifier que ton compte utilisateur fait bien partie du groupe plugdev
et donc lancer la ligne de commande que tu as cité.

Alors le problème vient peut venir du fait que je n’ai pas de groupe plugdev

$ grep plugdev /etc/passwd 
$

et d’utilisateur udev non plus !!!

Chercher le groupe ‘plugdev’ dans le fichier gérant les utilisateurs … ça ne va pas le faire !

un getent plugdev group serait mieux, non ?!
(de mémoire … sinon un man getent pour en savoir plus )


ça serait bien de lire la documentation Debian, non, histoire d’apprendre à gérer correctement, entres autres, les utilisateurs et les groupes.

Ça tombe bien, on a un “beau” post dédié :wink:

Effectivement.


Si la commande ci-dessous ne retourne rien,
c’est qu’effectivement, le groupe plugdev n’a pas été créé sur ton système

awk -F ":" '/plugdev/ {print $1}' /etc/group

Mais si la ligne de commande que tu avais entrée dans ton premier message te retorne un message d’erreur indiquant :

…udev requires plugdev group membership.

et je serais étonné que le groupe plugdev n’existe pas déjà sur ton système…

udev est un programme, plus précisément un "daemon"
qui est indispensable pour créer les fichiers de périphériques
qui a créé (entre autres) le fichier de périphérique
qui a servit à mounter la partition racine physique de ton système debian

Alors, oui, je me suis trompé de fichier "/

$ grep plugdev /etc/group
plugdev:x:46:gregory,udev

Finalement, j’ai l’utilisateur udev dans le groupe plugdev.
Mais j’ai tout de même toujours l’erreur. !
Je ne sais pas ce qui ce passe. :frowning:

Est-ce que le service ‘udev’ a été redémarré ?


@MicP : ce n’est strictement pas nécessaire. L’outil getentfais très bien son travail. S’il y a bien le groupe recherché, il restitue les informations. Sinon, rien !
Et, idem, pour ce que peux gèrer getent : user, group, etc … faut-il interroger le bon fichier, bien sûr :wink:

En effet, c’est le groupe donnant les droits aux utilisateurs lui appartenant sur l’usage des périphériques usb, géré par le service udev …
nécessaire pour les outils adb.


Juste pour être sûr, que restitue adb devices ?!

Il est tout simplement possible que la cible soit innaccessible pour des questions de propriétés et droits :

michel@debg53sw:~$ adb shell
shell@THL:/ $ ls -l /data
opendir failed, Permission denied
1|shell@THL:/ $ 
shell@THL:/ $ ls -l /
…
drwxrwx--x system   system            2017-05-23 15:05 data
…

Merci,

j’ai résolu le problème, qui semblait provenir d’un problème de permission d’accès au périphétique. :slight_smile: