- 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
85 lines
3.5 KiB
Markdown
85 lines
3.5 KiB
Markdown
# 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`.
|