Update README.md
This commit is contained in:
160
README.md
160
README.md
@@ -1 +1,159 @@
|
||||
# reset-mdp-jellyfin-BY-CLI
|
||||
# Reset du mot de passe d’un utilisateur Jellyfin via CLI (LXC)
|
||||
|
||||
## 🎯 Objectif
|
||||
|
||||
Réinitialiser le mot de passe d’un utilisateur Jellyfin (`USER$` dans cet exemple) **sans recréer le compte**, directement depuis le conteneur LXC, quand l’interface 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 l’hô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 l’utilisateur cible, par exemple : USER$.
|
||||
|
||||
---
|
||||
|
||||
## 5. Réinitialiser le mot de passe de l’utilisateur
|
||||
|
||||
Mettre le champ `Password` à `NULL` pour l’utilisateur :
|
||||
|
||||
```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 l’interface Jellyfin :`http://<IP_LXC_JELLYFIN>:8096`
|
||||
2. S’authentifier 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 n’importe quel utilisateur en changeant simplement :
|
||||
```sql
|
||||
WHERE Username='nom_utilisateur';
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user