Files
reset-mdp-jellyfin-BY-CLI/README.md
2025-11-16 19:39:59 +01:00

160 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Reset du mot de passe dun utilisateur Jellyfin via CLI (LXC)
## 🎯 Objectif
Réinitialiser le mot de passe dun utilisateur Jellyfin (`USER$` dans cet exemple) **sans recréer le compte**, directement depuis le conteneur LXC, quand linterface web affiche *Connection Failure* ou que le mot de passe est perdu.
Environnement :
- Jellyfin installé dans un LXC Ubuntu
- Base SQLite : `/var/lib/jellyfin/data/jellyfin.db`
- Accès root au LXC
---
## 1. Se connecter au conteneur Jellyfin
Depuis lhôte Proxmox (PVE), en root :
```bash
pct enter <CTID_JELLYFIN>
```
(Le prompt devient alors `root@jellyfin:/#`.)
Vérifier que Jellyfin tourne et écoute sur le port 8096 :
```bash
systemctl status jellyfin.service
ss -lntp | grep -E '8096|8920' || echo "Rien n'écoute sur 8096/8920"
```
---
## 2. Arrêter proprement le service Jellyfin
```bash
systemctl stop jellyfin.service
```
---
## 3. Sauvegarder la base de données Jellyfin
Se placer dans le répertoire des données :
```bash
cd /var/lib/jellyfin/data
ls jellyfin.db
```
Créer une sauvegarde horodatée :
```bash
cp jellyfin.db jellyfin.db.bak_$(date +%F_%H-%M-%S)
```
> En cas de problème, il suffira de restaurer :
>
> ```bash
> systemctl stop jellyfin.service
> cp jellyfin.db.bak_YYYY-MM-DD_HH-MM-SS jellyfin.db
> systemctl start jellyfin.service
> ```
---
## 4. Vérifier la liste des utilisateurs
Installer `sqlite3` si nécessaire :
```bash
apt update
apt install -y sqlite3
```
Lister les utilisateurs Jellyfin :
```bash
sqlite3 jellyfin.db "SELECT Id, Username FROM Users;"
```
Repérer lutilisateur cible, par exemple : USER$.
---
## 5. Réinitialiser le mot de passe de lutilisateur
Mettre le champ `Password` à `NULL` pour lutilisateur :
```bash
sqlite3 jellyfin.db "UPDATE Users SET Password=NULL WHERE Username='USER$';"
```
Vérifier :
```bash
sqlite3 jellyfin.db "SELECT Username, Password FROM Users WHERE Username='USER$';"
```
Résultat attendu :
```text
USER$|
```
(Colonne `Password` vide)
---
## 6. Redémarrer Jellyfin
```bash
systemctl start jellyfin.service
systemctl status jellyfin.service
```
Le service doit repasser en `active (running)`.
---
## 7. Connexion et changement de mot de passe
1. Ouvrir linterface Jellyfin :`http://<IP_LXC_JELLYFIN>:8096`
2. Sauthentifier avec :
- **Utilisateur** : USER$
- **Mot de passe** : **laisser vide**
3. Une fois connecté, aller dans :
- **Tableau de bord → Utilisateurs → USER$ → Mot de passe**
- Définir un **nouveau mot de passe** sécurisé.
---
## 8. Récapitulatif des commandes utilisées
```bash
# Dans le LXC Jellyfin
systemctl stop jellyfin.service
cd /var/lib/jellyfin/data
cp jellyfin.db jellyfin.db.bak_$(date +%F_%H-%M-%S)
sqlite3 jellyfin.db "SELECT Id, Username FROM Users;"
sqlite3 jellyfin.db "UPDATE Users SET Password=NULL WHERE Username='USER$';"
sqlite3 jellyfin.db "SELECT Username, Password FROM Users WHERE Username='USER$';"
systemctl start jellyfin.service
systemctl status jellyfin.service
```
---
## Notes
- Cette méthode ne supprime **aucun utilisateur** ni profils.
- Toujours conserver au moins **une sauvegarde** de `jellyfin.db` avant modification.
- La procédure est réutilisable pour nimporte quel utilisateur en changeant simplement :
```sql
WHERE Username='nom_utilisateur';
```