[Résolu] Le magicmirror se met en erreur lors du démarrage suite à la création d'un nouvel utilisateur

Bonjour à tous

J’ai créé un magicmirror qui fonctionne très bien, un tas de modules ont été installés : par exemple température extérieure via un capteur, ajout d’un diaporama etc…

Le problème est que pour des raisons de sécurité,j’ai voulu créer un nouvel utilisateur (appelons le toto) afin de pouvoir supprimer l’utilisateur pi par défaut et pouvoir profiter de toutes les fonctionnalités présentes sur mon raspberry et incluant le MM pour toto

Tout se passe bien jusqu’au démarrage de celui

je me déplace dans le dossier du magicmirror de mon nouvel utilisateur toto,puis lance la commande npm start et c’est la que ca coince! les modules ne se lancent pas :pleading_face:
Voici le message :

sh: 1: ./node_modules/.bin/electron: Permission denied
npm ERR! code ELIFECYCLE
npm ERR! errno 126
npm ERR! magicmirror@2.11.0 start: ‹ DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js ›
npm ERR! Exit status 126
npm ERR!
npm ERR! Failed at the magicmirror@2.11.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be foundin:
npm ERR! /home/toto/.npm/_logs/2020-06-07T07_21_42_237Z-debug.log

J’ai très certainement oublié certaines choses lors de la création de toto et de la copie des dossiers de l’utilisateur pi vers toto
Ou autre chose qui m’echappe :no_mouth:

Merci d’avance à ceux ou celles qui peuvent me donner un coup de main

Bonne journée :grinning:

Hello, mets nous les dernières lignes du fichier de log stp !

hello Gpapig merci de me répondre

Voici le fichier log:

0 info it worked if it ends with ok
1 warn npm npm does not support Node.js v10.19.0
2 warn npm You should probably upgrade to a newer version of node as we
3 warn npm can’t make any promises that npm will work with this version.
4 warn npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
5 warn npm You can find the latest version at https://nodejs.org/
6 verbose cli [ ‹ /usr/bin/node ›, ‹ /usr/bin/npm ›, ‹ start › ]
7 info using npm@5.8.0
8 info using node@v10.19.0
9 verbose run-script [ ‹ prestart ›, ‹ start ›, ‹ poststart › ]
10 info lifecycle magicmirror@2.11.0~prestart: magicmirror@2.11.0
11 info lifecycle magicmirror@2.11.0~start: magicmirror@2.11.0
12 verbose lifecycle magicmirror@2.11.0~start: unsafe-perm in lifecycle true
13 verbose lifecycle magicmirror@2.11.0~start: PATH: /usr/share/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/toto/MagicMirror/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
14 verbose lifecycle magicmirror@2.11.0~start: CWD: /home/toto/MagicMirror
15 silly lifecycle magicmirror@2.11.0~start: Args: [ ‹ -c ›,
15 silly lifecycle ‹ DISPLAY=« ${DISPLAY:=:0} » ./node_modules/.bin/electron js/electron.js › ]
16 silly lifecycle magicmirror@2.11.0~start: Returned: code: 126 signal: null
17 info lifecycle magicmirror@2.11.0~start: Failed to exec start script
18 verbose stack Error: magicmirror@2.11.0 start: DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js
18 verbose stack Exit status 126
18 verbose stack at EventEmitter. (/usr/share/npm/node_modules/npm-lifecycle/index.js:283:16)
18 verbose stack at EventEmitter.emit (events.js:198:13)
18 verbose stack at ChildProcess. (/usr/share/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
18 verbose stack at ChildProcess.emit (events.js:198:13)
18 verbose stack at maybeClose (internal/child_process.js:982:16)
18 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
19 verbose pkgid magicmirror@2.11.0
20 verbose cwd /home/toto/MagicMirror
21 verbose Linux 4.19.118-v7+
22 verbose argv « /usr/bin/node » « /usr/bin/npm » « start »
23 verbose node v10.19.0
24 verbose npm v5.8.0
25 error code ELIFECYCLE
26 error errno 126
27 error magicmirror@2.11.0 start: DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js
27 error Exit status 126
28 error Failed at the magicmirror@2.11.0 start script.
28 error This is probably not a problem with npm. There is likely additional logging output above.
29 verbose exit [ 126, true ]

hello,

si ça marchait avec le user pi il y a des chances qu’en ajoutant toto au groupe pi ça fonctionne aussi pour toto.
un truc genre :
sudo adduser nom_utilisateur nom_groupe
soit
sudo adduser toto pi

Salut Bof

Voici ce que j’avais fait pour la création de « toto »

sudo adduser toto
sudo adduser toto sudo

Puis j’ai copié les documents utilisateurs de pi vers toto :
sudo cp /home/pi/Documents/ /home/toto/Documents/

Je me suis retrouvé avec uniquement les dossiers du home dans toto (Bureau, Music,Téléchargements etc…)
Je ne voyais pas le dossier MagicMirror chez toto que j’ai copié manuellement de /pi/home/ vers pi/toto/

Je vais essayer ca et je te tiens au courant :+1:

Mince ça ne marche pas :astonished: :anguished:
J’ai tenté apres un redémarrage, même chose

Apres le lancement de la commande nmp start :

toto@rasp-pi://home/toto/MagicMirror $ npm start
npm WARN npm npm does not support Node.js v10.21.0
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can’t make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
npm WARN npm You can find the latest version at https://nodejs.org/

magicmirror@2.11.0 start /home/toto/MagicMirror
DISPLAY=« ${DISPLAY:=:0} » ./node_modules/.bin/electron js/electron.js

sh: 1: ./node_modules/.bin/electron: Permission denied
npm ERR! code ELIFECYCLE
npm ERR! errno 126
npm ERR! magicmirror@2.11.0 start: DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js
npm ERR! Exit status 126
npm ERR!
npm ERR! Failed at the magicmirror@2.11.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /home/toto/.npm/_logs/2020-06-07T19_07_40_935Z-debug.log

Visiblement je n’ai pas tout comparé, mais ca à l’air d’être les mêmes problèmes

Et pour le log :

0 info it worked if it ends with ok
1 warn npm npm does not support Node.js v10.21.0
2 warn npm You should probably upgrade to a newer version of node as we
3 warn npm can’t make any promises that npm will work with this version.
4 warn npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
5 warn npm You can find the latest version at https://nodejs.org/
6 verbose cli [ ‹ /usr/bin/node ›, ‹ /usr/bin/npm ›, ‹ start › ]
7 info using npm@5.8.0
8 info using node@v10.21.0
9 verbose run-script [ ‹ prestart ›, ‹ start ›, ‹ poststart › ]
10 info lifecycle magicmirror@2.11.0~prestart: magicmirror@2.11.0
11 info lifecycle magicmirror@2.11.0~start: magicmirror@2.11.0
12 verbose lifecycle magicmirror@2.11.0~start: unsafe-perm in lifecycle true
13 verbose lifecycle magicmirror@2.11.0~start: PATH: /usr/share/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/toto/MagicMirror/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
14 verbose lifecycle magicmirror@2.11.0~start: CWD: /home/toto/MagicMirror
15 silly lifecycle magicmirror@2.11.0~start: Args: [ ‹ -c ›,
15 silly lifecycle ‹ DISPLAY=« ${DISPLAY:=:0} » ./node_modules/.bin/electron js/electron.js › ]
16 silly lifecycle magicmirror@2.11.0~start: Returned: code: 126 signal: null
17 info lifecycle magicmirror@2.11.0~start: Failed to exec start script
18 verbose stack Error: magicmirror@2.11.0 start: DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js
18 verbose stack Exit status 126
18 verbose stack at EventEmitter. (/usr/share/npm/node_modules/npm-lifecycle/index.js:283:16)
18 verbose stack at EventEmitter.emit (events.js:198:13)
18 verbose stack at ChildProcess. (/usr/share/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
18 verbose stack at ChildProcess.emit (events.js:198:13)
18 verbose stack at maybeClose (internal/child_process.js:982:16)
18 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
19 verbose pkgid magicmirror@2.11.0
20 verbose cwd /home/toto/MagicMirror
21 verbose Linux 4.19.118-v7+
22 verbose argv « /usr/bin/node » « /usr/bin/npm » « start »
23 verbose node v10.21.0
24 verbose npm v5.8.0
25 error code ELIFECYCLE
26 error errno 126
27 error magicmirror@2.11.0 start: DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js
27 error Exit status 126
28 error Failed at the magicmirror@2.11.0 start script.
28 error This is probably not a problem with npm. There is likely additional logging output above.
29 verbose exit [ 126, true ]

bref, toujours en galère

apres cette copie as tu changé le user des différents fichiers copiés ?
cd /home/toto
sudo chown -R toto:toto *

la commande chown change le user:le group et le -R doit le faire pour tous le /home/toto ( fichiers et dossiers)
attention si tu as d’autres propriétaires dans ton home ( peu probable )
même soucis lors de la copie avec les fichiers commençant par des points ; il me semble qu’en faisant un cp avec * il ne les copie pas genre :
sudo cp -r /home/pi/* /home/toto/ pas de copie des fichiers commençant par un point
pour les voir :
ls -la
pour les copier:

sudo cp /home/pi/.* /home/toto ou un par un si t’en as pas 40 …
find /home/pi/ -name ".*" pour les trouver !

Oui effectivement je n’ai pas pensé au chown et aux fichiers cachés, a vrai dire,j’ai des petites connaissances sur Linux, mais je fais des efforts pour apprendre :grinning:

Donc ok pour chown
Apres avoir executé:

sudo cp /home/pi/.* /home/toto, il m’a retourné ces résultats dont je montre quelques lignes :

cp: -r non spécifié ; omission du répertoire ‹ /home/pi/. ›
cp: -r non spécifié ; omission du répertoire ‹ /home/pi/… ›
cp: -r non spécifié ; omission du répertoire ‹ /home/pi/.cache ›
cp: -r non spécifié ; omission du répertoire ‹ /home/pi/.config ›
cp: -r non spécifié ; omission du répertoire ‹ /home/pi/.gnome › […]

Donc du coup j’ai réxécuté la commande avec l’option -r

sudo cp -r /home/pi/.* /home/toto

cp: impossible d’écraser le répertoire ‹ /home/toto/ ./home › par un non répertoire
cp: ne créera pas le lien direct ‹ /home/toto/pi › vers le répertoire ‹ /home/toto/. ›
cp: impossible de créer un répertoire (’/home/pi/…’) dans lui même (’/home/toto’)

Par contre je me suis apercu qu’en me connectant sur l’utilisateur toto que certains paramètres comme par exemple la personnalisation du bureau ont été pris en compte, donc on doit etre sur la bonne voie :relieved:

En revanche j’ai voulu lancer mon MM, toujours le même message d’erreur :no_mouth:

Bon ok je repars de zéro :relieved:

J’ai supprimé mon utilisateur toto,redémarré mon raspi, puis recréé a nouveau un nouveau toto pour repartir sur une base saine et j’ai besoin de votre aide svp pour faire les bonnes manips :grinning:

Voici ce que j’ai fait :
sudo adduser toto

Ca m’a créé cet utilisateur dans le groupe toto

Puis reprenant le conseil de bof, je l’ai ajouté au groupe pi

sudo adduser toto pi
Toto est ajouté au groupe pi

Par contre je ne retrouve que les répertoires du home pour toto ,en tapant ls -h
Desktop Documents Images Modèles Musique Public Téléchargements Vidéos

Pas de trace de mon dossier MagicMirror par exemple, bien que je l’ai ajouté au groupe pi

Quelqu’un peut m’aiguiller afin que je puisse recupérer les config de pi pour toto ?
Merci

D’autres pistes peut etre…

Affichage des groupes dont font partie toto
grep « toto » /etc/group :
pi:x:1000:toto
toto:x:1001:

En tapant plusieurs commandes,j’ai ce message qui apparait à chaque fois

toto n’apparait pas dans le fichier sudoers. Cet evenement sera signalé

Voici les commandes tapées qui aboutissent à ce résultat
sudo cat shadow
sudo cat gshadow
sudo pgrep - u toto

Volia des pistes un peu minces :no_mouth:

pour le sudo de toto il faut rajouter toto au groupe sudo :
sudo adduser toto sudo
bien sur il faudra te logguer avec pi …

PS: si tu t’es servi d’un tuto tu peux donner le lien ça peut aider pour avoir une vue d’ensemble du problème.

Voici les liens dont je me suis inspiré afin de vérifier mes groupes:

Je vais ajouter toto au groupe sudo je vais voir ce que ca donne

j’ai pas été clair :roll_eyes: je voulais parler du tuto qui t’as servi a créer le MM

Ah sorry :laughing:

Le voici:

Après pour l’install des modules, c’est le site github.com :

en relisant ton post j’ai peut-être trouver une solution plus simple que la copie c’est de changer le login et de renommer le répertoire pour que ton user pi devienne le user toto …
la procédure ici : Changer le login et le répertoire personnel d’un utilisateur | Linux- notebook

j’ai pas testé mais comme c’est de la commande basique ça devrait fonctionner !
il y aura sans doute le sudo à reparamètrer …

Je vais tester cette idée
Avant tout je vais créer une image de mon OS en tant que sauvegarde on sait jamais :slightly_smiling_face:

Par contre quand tu dis reparamétrer sudo ? peux tu préciser please ?

le changement de nom du login (pi → toto) ne vas sans doute pas récupérer le group sudo pour toto donc il faudra refaire sudo adduser toto sudo avec le user que tu auras préalablement créé avec le user pi ( celui qui doit te servir pour la copie )

source : https://www.raspberrypi.org/documentation/linux/usage/users.md

Excuse moi j’ai pas trop compris la :neutral_face:

Par rapport aux liens que tu m’as donné je suis un peu perdu car j’avais deja fait les manips suivantes qui ont échoué

copie du home/pi dans etc/skel
sudo cp -R /home/pi/* /home/pi/.* /etc/skel
Puis création de toto :
sudo adduser toto

A ce moment la copie issu de /etc/skel s’effectue dans le home de toto
A la fin de l’opération j’ai une erreur 6,qui supprime mon nouvel utilisateur toto plus son groupe

J’ai fait le changement du renommage de répertoire : ca a fonctionné mais au moment de me loguer avec toto,impossible
Et en parcourant l’arborescence, pas de répertoire home existant pour toto

Donc je suis de nouveau revenu à la case départ
Je dois un peu mélanger les procédures mais j’ai compris l’ensemble des commandes et du principes sauf que je n’arrive pas à faire les choses dans l’ordre
Le lien en anglais ne m’a pas géné,il est assez compréhensible