Dossier root corrompu sur NAS Qnap : Que faire ?

Fermé
loic31b - 29 juil. 2016 à 22:50
ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 - 2 août 2016 à 18:48
Bonjour,

Essayant de créer un accès root à mon nas (QNAP TS 251) via putty pour pouvoir installer un logiciel qu'un développeur m'a fait, j'ai voulu suivre la procédure de ce topic : http://www.matthiaseinig.de/2009/12/06/qnap-activate-root-account-on-nas/

J'ai juste installé entware plutôt qu'optware et changé les commandes "ipkg" par "qpkg".
Après avoir modifier la ligne : admin:x:0:0:administrators:/root:/bin/sh
je n'ai jamais réussi à ressortir / continuer la procèdure et j'ai donc fermé putty.

Le problème, c'est que je ne peux plus du tout me connecter via putty. Je peux rentrer le login mais lors de la demande de password, aucune touche ne fonctionne.

Bien évidemment, une MAJ du NAS ou un reset n'ont rien changé. Y a t'il moyen de réparer mon erreur sachant que je n'ai pas de sauvegarde (ca serait trop simple) ?
Est ce qu'à l'aide de filezilla, il est possible d'accéder aux dossiers sources tel que le dossier root ou c'est peine perdu.

Merci d'avance

6 réponses

ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
Modifié par ryko1820 le 30/07/2016 à 19:05
Hello,

... donc dans vi tu n'es pas arrivé à enregistrer la modification de ton fichier passwd ?

En plus apparemment au point 9 de la procédure dont tu mets le lien, il a fait une erreur, il dit :

8. open passwd file
vi /etc/passwd
9.copy line :
admin:x:0:0:administrators:/root:/bin/sh
and change it to :
admin:x:0:0:administrators:/root:/bin/sh

Alors qu'il faut très certainement dupliquer la ligne et la modifier en :
root:x:0:0:administrators:/root:/bin/sh

Normalement, comme tu n'es pas arrivé à enregistrer la modification du fichier dans vi, tu devrais pouvoir te connecter en utilisant ton login admin et ton mot de passe habituel.
Quand bien même le fichier passwd aurait été modifié, comme on duplique la ligne "admin etc..." pour la modifier, on doit malgré tout conserver ce user et son accès à l'issue de la procédure (sauf si on a vraiment tout focké)

Le fait qu'il n'y ait pas d'echo (d'étoiles) du mot de passe lors de sa frappe dans putty est normal. Quand tu tapes "enter" il le prends bien en compte ?

Tu es sûr d'avoir besoin d'un root car admin semble être équivalent sur ton système ?


- Make me a sandwich. 
- What? Make it yourself.
- Sudo make me a sandwich.
- Okay
0
loic31b Messages postés 9 Date d'inscription dimanche 31 juillet 2016 Statut Membre Dernière intervention 2 août 2016
Modifié par loic31b le 31/07/2016 à 13:32
Merci beaucoup pour la réponse !

Effectivement, il n'y a plus d'affichage de saisie de mdp mais je peux y accéder.

Je suis donc retourné dans vi etc/passwd et j'ai reussi à comprendre comment vi fonctionne, j'ai donc changer en root et sauvegardé.

Par contre, j'ai un nouveau soucis ! Avec vi sudo (étape 14), je n'avais pas (root ALL=(ALL) ALL) d'ailleurs c'était vide. J'ai quand même créé la ligne admin ALL=(ALL) ALL.

Maintenant, impossible de me connecter au NAS de quelque manière que ce soit.

Avec putty : Le mot de passe xxx me revient "Access denied".
Par le web : "Vos informations de connexions sont incorrectes ou votre compte n'est plus valide."

Merci d'avance
0
ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
Modifié par ryko1820 le 31/07/2016 à 16:04
Hello,

Plus aucun des utilisateurs root ou admin ne fonctionnent ? Si c'est le cas tu es mal.

En 11, tu as bien dupliqué la ligne avant de la modifier ?
A l'arrivée tu dois avoir :
admin:$1$$blabla
root:$1$$blabla

Ça c'est super important, si shadow a été focké c'est mort, car si ton sshd n'autorise pas root en connexion distante (ce qui est généralement le cas par défaut) tu ne peux plus te connecter ni en admin, ni en root, donc il faudra rebooter en mode maintenance (si c'est possible sur ton système) et remodifier les fichiers.
EDIT : Apparemment pas de mode single user sur ce système.

EDIT : Ce que tu appelles MAJ du NAS c'est de réécrire le firmware ? Auquel cas il te restera toujours cette solution, même si j'imagine que cela efface tout ce que tu as pu installer et modifier ... Et tout recommencer.

Ensuite, normalement pour modifier le fichier sudoers on utilise visudo, sudo est assez chatouilleux sur les droits de son fichier sudoers et là aussi il faut dupliquer les lignes afin d'obtenir à l'arrivée :
root ALL=(ALL) ALL)
admin ALL=(ALL) ALL)

En plus visudo se charge d'ouvrir le bon fichier avec le chemin, etc ...

Là je pense que le fichier que tu as créé n'est pas utilisé du tout car le vi sudo, je ne sais pas d'ou il sort cette commande, mais à moins que cela soit spécifique à QNAP, ça me parait un peu fantaisiste et ça finit dans le vent (ce que semble confirmer ton fichier vide. Il a du faire une typo et voulait taper visudo mais à mis un espace) Au pire on pourrait faire
vi /etc/sudoers
connecté en root ou admin (ou après su) mais je recommande vraiment visudo (même si chez moi par défaut ça ouvre cette daube de nano si il est installé, mais les goûts et les couleurs ... et puis bon, on va pas souvent dans ce fichier).

Perso. je n'ai jamais dupliqué d'admin et j'autorise le groupe wheel (car j'utilise aussi la commande su quand je dois lancer plusieurs commandes en root) à sudoer, puis j'ajoute mon user dedans, sinon on peut aussi utiliser le groupe sudo, à conditions que ces groupes existent bien sur ton système, ce qui devrait être le cas.

Regarde dans les commentaires de la procédure sur le site, un mec avait corrigé quelques une des erreurs de la procédure.
0
loic31b Messages postés 9 Date d'inscription dimanche 31 juillet 2016 Statut Membre Dernière intervention 2 août 2016
Modifié par loic31b le 1/08/2016 à 19:37
Merci pour ces explications très claires !

Malheureusement pour moi, j'ai bien oublié de dupliquer l'étape 11.
J'ai du retirer un disque dur pour mettre le NAS en erreur, provoquant des erreurs de block du HDD mais ca c'était en bonus ! Bref, j'ai tout reformaté.

Ta commande "visudo" donne "command not found" donc cela doit être particulier pour Qnap. J'ai bien dupliqué la ligne avant de la modifier.
Tous les conseils prodigués par le commentaire du tuto ne fonctionnent pas, les commandes nano ne marchent pas, de même que sudoers.

J'ai fait l'intégralité des étapes à savoir que mon dossier est vraiment différent : admin:x:0:0:administrator:/share/homes/admin:/bin/sh au lieu de admin:x:0:0:administrators:/root:/bin/sh.

Par contre, j'ai voulu faire "sudo ./logiciel pour installer ledit soft à l'origine de ma démarche et cela me marque "sudo : command not found".

A savoir que j'ai dupliqué les lignes des étapes 9, 11 et 14.
Ce qui me donne au final :

vi /etc/passwd
admin:x:0:0:administrator:/share/homes/admin:/bin/sh
root:x:0:0:administrator:/share/homes/admin:/bin/sh
guest:x:65534:65534:guest:/tmp:/bin/sh
httpdusr:x:99:0:Apache httpd user:/tmp:/bin/sh


vi /etc/shadow
admin:$1$$ylGzwf6MtuYTKTdPlJ6d.1:14233:0:99999:7:::
root:$1$$ylGzwf6MtuYTKTdPlJ6d.1:14233:0:99999:7:::
guest:$1$$ysap7EeB9ODCrO46Psdbq/:14233:0:99999:7:::
httpdusr:!:17013:0:99999:7:::

vi sudo
root ALL=(ALL) ALL
admin ALL=(ALL) ALL

Ce qui est étonnant, c'est que vi sudo en mode Read Only est vide.
Est ce normal qu'aux premières étapes "qpkg update" et "qpkg install", il ne se passe rien ?
Peut-être qu'il faut faire une commande spéciale au démarrage de putty pour être en mode root ?

La dernière idée du commentaire m’intrigue et je n'ai pas essayé
"To edit sudoers with nano, reset the environment variable for the editor: 'EDITOR=nano'
Then to edit sudoers just type: 'visudo' and press enter"
0
ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
1 août 2016 à 21:16
Hello,

Tu as donc reinjecté le firmware ?

Apparemment, à présent, tes fichiers sont conformes.

... Par conséquent tu arrives a te connecter en root et/ou en admin sans problème ?

La commande sudo fonctionne-t-elle ?
0
loic31b Messages postés 9 Date d'inscription dimanche 31 juillet 2016 Statut Membre Dernière intervention 2 août 2016
Modifié par loic31b le 1/08/2016 à 21:42
J'ai réinjecté le firmware mais cela n'a rien fait.
J'ai remis les paramètres d'usines, réparé un disque qui n'a pas supporté d’être retiré en hot swap et j'ai formaté les disques.

J'arrive donc à me connecter à nouveau en admin mais la procédure ne semble pas marcher puisque j'ai "sudo : command not found"

Peut-être que tout simplement mon apk entware ne fonctionne pas.
0
loic31b Messages postés 9 Date d'inscription dimanche 31 juillet 2016 Statut Membre Dernière intervention 2 août 2016
1 août 2016 à 22:33
Ok j'avance mais toujours bloqué.

La commande qpkg était erronée, il faut utiliser opkg !
J'ai donc installer sudo.

En faisant "sudo ./logiciel" cela me mettait "admin is not in the sudoers file"

Avec ta commande visudo, j'ai ajouté "admin ALL=(ALL) ALL " mais maintenant en faisant "sudo ./logiciel" il marque "command not found"

Je ne vois pas d'où cela peut encore venir.
0
ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
1 août 2016 à 23:34
c'est presque bon je pense.

si tu fais une commande quelconque, genre
sudo ls
cela fonctionne ? ou cela te mets un message d'erreur ?

tu es sûr que les chemins existent dans ton fichier passwd ?
/share/homes/admin
à la place de
/root
ça me parait violent.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
loic31b Messages postés 9 Date d'inscription dimanche 31 juillet 2016 Statut Membre Dernière intervention 2 août 2016
2 août 2016 à 11:19
sudo ls fonctionne.

A la racine, il y a bien un dossier root. En faisant "cd /root" rien ne se passe, il commence toujours par [~] # et "ls" me donne index_default.html

Le chemin /share/homes/admin existe bien.
0
ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
Modifié par ryko1820 le 2/08/2016 à 16:22
Hello,

super, sudo fonctionne, et la configuration de passwd ne semble pas perturber le système ...

si tu tapes
file ./logiciel
qu'est-ce que cela dit ?

Hypothèse 1 : Je soupçonne que ce logiciel soit en fait un lanceur (un shell script) et qu'il ne trouve pas certaines commandes qu'il lance ...

Dans ce cas la commande
file
  répondra quelque chose du genre :
./logiciel: Bourne-Again shell script, UTF-8 Unicode text executable

Il faudra alors ouvrir ce script (
vi ./logiciel
) pour diagnostiquer quelle est la commande qui ne fonctionne pas dans la succession de commandes lancées par le script (cause probable de dysfonctionnement dans le cadre de cette hypothèse : programme pas installé/commande pas implémentée ou chemin inscrit dans le script vers programme/commande incomplet/incorrect) ...

Hypothèse 2 : Si ce n'est pas le cas, cela signifie que tu ne donnes pas le bon chemin quand tu tapes
sudo ./logiciel
et qu'il ne se trouve pas dans le répertoire courant mais ailleurs ...

Dans ce cas lorsque tu auras tapé la commande
file ./logiciel
cela répondra
cannot open `./logiciel' (No such file or directory)


Donner le chemin complet vers
logiciel
résoudra le problème.
Par exemple
sudo /opt/mylog/logiciel
...
0
loic31b Messages postés 9 Date d'inscription dimanche 31 juillet 2016 Statut Membre Dernière intervention 2 août 2016
2 août 2016 à 16:31
Je ne suis pas sur de bien comprendre ton "file ./logiciel" ...

Le logiciel, je comprends mais qu'est ce que "file" ? Je le laisse tel quel ? Est ce mon dossier contenant le logiciel ???

Pour donner le chemin complet, pas de souci mais comment se termine la commande : sudo /share/bla/bla ./logiciel <<comme ca ?

Cela me donne "-sh: file:command not found"
0
ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
Modifié par ryko1820 le 2/08/2016 à 17:11
file
est une commande standard de linux qui permets de connaitre le type mime d'un fichier en se basant sur son contenu ... mais apparemment elle n'existe pas sur ton système ou n'est pas dans le PATH. Pas très grave on va tenter l'hypothèse 2 ...

Pour donner le chemin complet, il faudra plutôt écrire :
sudo /share/bla/bla/logiciel
0
loic31b Messages postés 9 Date d'inscription dimanche 31 juillet 2016 Statut Membre Dernière intervention 2 août 2016
2 août 2016 à 17:30
Toujours pareil, en inscrivant le chemin complet, ça me renvoi "command not found".

"file ./logiciel" me renvoi "-sh: file: command not found" donc hypothèse 3 ...

J'ai bien copié le fichier logiciel ainsi que logiciel.zip dans le dossier.

Dans le readme, il est écrit en remarque :

- Le serveur sera installé et lancé en tant que "Daemon (service)"
- Les scripts de contrôle sont crées dans /etc/init.d
0
loic31b Messages postés 9 Date d'inscription dimanche 31 juillet 2016 Statut Membre Dernière intervention 2 août 2016
2 août 2016 à 17:46
vi ./logiciel me sort un long texte d'arobas dans lequel j'ai trouvé une ligne: lib/ld-linux.sc.2

Il s'agit un logiciel basé en windev et c'est pour installer une base de donnée manta.

Je n'ai pas d'autres infos ...
0
ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
Modifié par ryko1820 le 2/08/2016 à 18:06
C'est du binaire ou un fichier compressé, laisse tombé, dommage que tu n'ais pas
file
d'installé ...

Il s'agit peut être du programme d'installation, je ne sais pas comment ton développeur a pu packager le truc. Tu as essayé de le lancer avec le chemin complet ?
sudo /cheminverslogiciel/logiciel
0
ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276 > ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021
Modifié par ryko1820 le 2/08/2016 à 18:59
Installer ce genre de solutions sur un NAS soulève pas mal d'incertitudes.
Tu n'est pas sur un "vrai" linux mais une version allégée au maximum.

Est-ce que ton programme à été compilé pour fonctionner dans ce type d'environnement ?
=> 32/64bit,version librairies.
Quelles sont les dépendances ?
=> Les librairies, voir les programmes, dont la base et les logiciels vont avoir besoin.
Comment est packagé la solution ?
=> Existe-t-il un programme d'installation qui va se charger d'écrire les bons fichiers aux bons endroits, de dézipper ce qui doit l'être, voir de télécharger et d'installer des outils nécessaire.

Tu vois tout ce qu'on vient de faire ? Et bien je dirais volontiers qu'on s'engage dans autant de manipulations, voir plus ... Pour un résultat incertain, sans vouloir être pessimiste.

Le mieux serait peut-être d'ouvrir un nouveau fil en précisant ta demande car nous avons résolu le problème initial et c'est un nouveau problème, mais il s'agit d'action plus technique que d'installer un package via une simple ligne de commande connu de tous; sauf si le programme à été correctement packagé et même pour déterminer cela on a déjà du mal.

En plus il s'agit d'un service ce qui implique, la création/l'écriture de fichier(s) de configuration dans des endroits prédéfinis.
Faudrait que tu arrives à lancer "logiciel" voir si il nous donne pas une solution facile, sinon cela sera plus hardu.

Sinon je pense que
"."
n'est pas dans le path de ton root, aussi il te faut utiliser le chemin complet pour lancer avec sudo car
./dummy
par exemple, ne fonctionnera pas
0