Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:autres:vm:lxc:mode-utilisateur [09/12/2015 19:30] captnfab [Préparation] |
doc:autres:vm:lxc:mode-utilisateur [09/12/2015 20:27] captnfab [Préparation] |
||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
* Suivi : {{tag>en-chantier à-tester}} | * Suivi : {{tag>en-chantier à-tester}} | ||
* Création par [[user>captnfab]] 09/12/2015 | * Création par [[user>captnfab]] 09/12/2015 | ||
- | * Testé par <...> le <...> FIXME | + | * Testé par captnfab le 09/12/2015 |
- | * Commentaires sur le forum : [[url | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | + | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=151771#p151771 | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME |
**Nota :** | **Nota :** | ||
Ligne 20: | Ligne 20: | ||
Les outils de gestion lxc : | Les outils de gestion lxc : | ||
- | <code root>apt-get install lxc cgroup-bin uidmap</code> | + | <code root>apt-get install lxc cgmanager uidmap</code> |
D'autres outils normalement présents par défaut : | D'autres outils normalement présents par défaut : | ||
Ligne 39: | Ligne 39: | ||
<note info>L'option ''--disabled-password'' n'est pas obligatoire, elle permet simplement de s'assurer que la connexion par mot de passe est impossible via ssh.</note> | <note info>L'option ''--disabled-password'' n'est pas obligatoire, elle permet simplement de s'assurer que la connexion par mot de passe est impossible via ssh.</note> | ||
+ | <note important>Comme vous devrez vous connecter à cet utilisateur via ssh, je vous conseille de créer dès maintenant une paire de clefs via ssh-keygen, et de rajouter la clef publique aux clefs autorisées pour cet utilisateur.</note> | ||
=== Identification d'une plage d'uid/gid libre === | === Identification d'une plage d'uid/gid libre === | ||
Ligne 67: | Ligne 68: | ||
=== Création du pont === | === Création du pont === | ||
<code root>brctl addbr lxcbr0</code> | <code root>brctl addbr lxcbr0</code> | ||
+ | (Penser à automatiser sa création, par exemple via le fichier ''/e/n/interfaces'' ou via Network-Manager) | ||
=== Accès === | === Accès === | ||
On autorise l'utilisateur lxcuser-test à connecter une interface //ethernet// virtuelle au port (vous pouvez augmenter ce nombre selon vos besoins, fichier à créer) : | On autorise l'utilisateur lxcuser-test à connecter une interface //ethernet// virtuelle au port (vous pouvez augmenter ce nombre selon vos besoins, fichier à créer) : | ||
Ligne 79: | Ligne 80: | ||
Créons les fichiers suivants : | Créons les fichiers suivants : | ||
- | <code bash /usr/local/etc/lxc-cgroups-user> | + | <code bash /usr/local/etc/lxc-cgroups-users> |
# Liste des utilisateurs pouvant lancer des lxc | # Liste des utilisateurs pouvant lancer des lxc | ||
LXCUSERS="lxcuser-test" | LXCUSERS="lxcuser-test" | ||
Ligne 85: | Ligne 86: | ||
<code bash /usr/local/sbin/prepare-lxc-cgroups> | <code bash /usr/local/sbin/prepare-lxc-cgroups> | ||
- | #!/bin/sh | + | #!/bin/bash |
- | . /usr/local/etc/lxc-cgroups-users | + | source /usr/local/etc/lxc-cgroups-users |
+ | |||
+ | echo 1 > /sys/fs/cgroup/cpuset/cgroup.clone_children | ||
+ | echo 1 > /proc/sys/kernel/unprivileged_userns_clone | ||
for u in $LXCUSERS do | for u in $LXCUSERS do | ||
Ligne 145: | Ligne 149: | ||
===== Utilisation du conteneur ===== | ===== Utilisation du conteneur ===== | ||
+ | <code user>cgm modepid all $USER $$ | ||
+ | lxc-start -n test -d</code> | ||
+ | |||
+ | Attention, la première commande peut renvoyer une erreur tout en fonctionnant correctement, donc ne pas utiliser ''&&''. | ||
===== FAQ / Problèmes rencontrés ===== | ===== FAQ / Problèmes rencontrés ===== | ||
Messages d'erreur rencontrés en lançant les différentes commandes du tuto, ou encore journalctl -xe | Messages d'erreur rencontrés en lançant les différentes commandes du tuto, ou encore journalctl -xe | ||
Ligne 150: | Ligne 158: | ||
* ''lxc_container: Failed to chown /dev/pts/X'' | * ''lxc_container: Failed to chown /dev/pts/X'' | ||
Vérifier que le paquet ''uidmap'' est bien installé | Vérifier que le paquet ''uidmap'' est bien installé | ||
+ | Vérifier que ''/proc/sys/kernel/unprivileged_userns_clone'' et ''/sys/fs/cgroup/cpuset/cgroup.clone_children'' sont bien à ''1'' | ||
* ''pam_unix(sudo:auth): conversation failed'', ''pam_unix(sudo:auth): auth could not identify password for [lxcuser-test]'' | * ''pam_unix(sudo:auth): conversation failed'', ''pam_unix(sudo:auth): auth could not identify password for [lxcuser-test]'' | ||
Ligne 170: | Ligne 179: | ||
* ''lxc_container: cgmanager.c: lxc_cgmanager_enter: 698 call to cgmanager_move_pid_sync failed: invalid request'' | * ''lxc_container: cgmanager.c: lxc_cgmanager_enter: 698 call to cgmanager_move_pid_sync failed: invalid request'' | ||
Muh ? Visiblement, problème avec une version cgmanager trop récente (stretch/sid et non jessie) | Muh ? Visiblement, problème avec une version cgmanager trop récente (stretch/sid et non jessie) | ||
+ | |||
+ | * ''lxc_start - failed to create the configured network'' | ||
+ | Vérifier que le bridge renseigné dans ''/etc/lxc/usernet'' existe bien. |