Files
vps-docs/hestiacp/chapitres/05-utilisateur-hebergement.md
Zana 2e18724685 Ajout du guide PDF HestiaCP réutilisable (HestiaCP 1.10.4)
- 14 chapitres + annexe en Markdown (chapitres/), 99 étapes
- Générateur WeasyPrint (build/build.py) : PDF générique ou
  personnalisé via --vars fichier.conf
- PDF générique + PDF personnalisé srv1.skglobalinstitute.com
- Commandes v-* vérifiées contre le code source HestiaCP 1.10.4
- 03-bis-hestiacp.md pointe vers le nouveau guide

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018J2PsVQ28oW4xEkWJpcU9G
2026-09-10 20:01:59 +02:00

85 lines
3.5 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.
# Créer l'utilisateur d'hébergement
Dans HestiaCP, **chaque utilisateur du panel est un vrai utilisateur Linux**. PHP-FPM, les tâches cron et la connexion SSH de ses sites tournent sous ce même compte.
Tous les fichiers d'un site appartiennent donc à un seul utilisateur. Les problèmes de droits connus sous ISPConfig (`webX:clientY`, ACL, `chmod 777` sur le cache Symfony) disparaissent.
| Élément | Emplacement |
|---|---|
| Fichiers d'un site | `/home/{{CLIENT}}/web/<domaine>/public_html/` |
| Fichiers privés (hors web) | `/home/{{CLIENT}}/web/<domaine>/private/` |
| Journaux du site | `/home/{{CLIENT}}/web/<domaine>/logs/` |
| Boîtes mail | `/home/{{CLIENT}}/mail/<domaine>/` |
| Sauvegardes | `/backup/` |
## Créer un forfait « projets »
Un **forfait** (*package*) définit les limites et les réglages par défaut d'un utilisateur. Le forfait `default` interdit le SSH et ne garde qu'une sauvegarde : on en crée un plus adapté à partir de lui.
```bash
sudo cp /usr/local/hestia/data/packages/default.pkg /tmp/projets.pkg
sudo sed -i "s/^SHELL=.*/SHELL='bash'/; s/^BACKUPS=.*/BACKUPS='7'/" /tmp/projets.pkg
sudo v-add-user-package /tmp/projets.pkg projets
sudo rm /tmp/projets.pkg
sudo v-list-user-package projets
```
> [!CHECK]
> Dans la sortie, la ligne `SHELL` indique `bash`, la ligne `BACKUPS` indique `7` et la ligne `NS` indique `ns1.{{DOMAINE}},ns2.{{DOMAINE}}`.
> [!NOTE]
> `BACKUPS='7'` garde 7 sauvegardes quotidiennes locales. Sur un petit disque, réduisez ce nombre. Le forfait se modifie aussi dans le panel : **roue dentée › Forfaits**.
## Créer l'utilisateur {{CLIENT}}
Choisissez un mot de passe fort, que vous notez dans votre gestionnaire de mots de passe. L'espace avant la commande l'empêche d'être enregistré dans l'historique du shell :
```bash
sudo v-add-user {{CLIENT}} 'MOT_DE_PASSE_FORT' {{EMAIL}} projets
```
> [!WARNING]
> Depuis HestiaCP 1.10, un nom qui existe déjà comme utilisateur Linux est refusé. {{CLIENT}} doit donc être différent de {{USER}} et de {{ADMIN}}.
## Vérifier les serveurs de noms de l'utilisateur
Les zones DNS créées par {{CLIENT}} utiliseront ces serveurs de noms :
```bash
sudo v-change-user-ns {{CLIENT}} ns1.{{DOMAINE}} ns2.{{DOMAINE}}
sudo v-list-user {{CLIENT}} json | grep -E '"(PACKAGE|SHELL|NS)"'
```
> [!CHECK]
> `"PACKAGE": "projets"`, `"NS": "ns1.{{DOMAINE}},ns2.{{DOMAINE}}"`, `"SHELL": "bash"`.
## Autoriser votre clé SSH pour {{CLIENT}}
Pour déployer vos projets, vous vous connecterez directement en {{CLIENT}}. Ajoutez votre clé publique, celle du fichier `~/.ssh/id_ed25519.pub` de votre ordinateur :
```bash
sudo v-add-user-ssh-key {{CLIENT}} "$(cat /home/{{USER}}/.ssh/authorized_keys | head -1)"
```
> [!CHECK]
> Depuis votre ordinateur, `ssh -p {{SSH_PORT}} {{CLIENT}}@{{IP}}` ouvre une session dans `/home/{{CLIENT}}`.
## Installer Composer pour {{CLIENT}}
```bash
sudo v-add-user-composer {{CLIENT}}
```
Cette commande installe Composer 2 dans `/home/{{CLIENT}}/.composer/` et crée l'alias `composer` pour cet utilisateur.
## Choisir la version de PHP en ligne de commande
Par défaut, la commande `php` utilise la version la plus récente installée. Pour que {{CLIENT}} utilise PHP 8.4 en SSH :
```bash
sudo v-change-user-php-cli {{CLIENT}} 8.4
```
> [!WARNING] Cron et scripts : chemin complet obligatoire
> Cette commande crée seulement un **alias** dans `~/.bash_aliases`, que les tâches cron et les scripts ne lisent pas. Dans ces cas, écrivez toujours le chemin complet : `/usr/bin/php8.4`.