Pourquoi utiliser lxc au lieu de chroot?

Un server ubuntu héberge 3 applications sur des domaines distincts.
Chaque application possède ses propres développeurs.
Les développeurs d'applications appartiennent au groupe "sftp" de linux.
chroot permet l'access sftp par mot de passe pour chaque développeur d'applications.

 /home/app1/prod /home/app2/prod /home/app3/prod 

Dans sshd_config

 Match Group sftp PasswordAuthentication yes ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no 

Notre préoccupation est une vulnérabilité de programmation dans une application qui pose des problèmes dans les 2 autres applications.

Devons-nous utiliser le conteneur lxc au lieu de chroot? Pourquoi? La modification des conteneurs lxc sera-t-elle transparente pour les développeurs d'applications?

Les conteneurs Linux (LXC) sont une méthode de virtualisation au niveau du operating system pour l'exécution de plusieurs installations de server isolées (conteneurs) sur un seul hôte de contrôle. LXC ne fournit pas une machine virtuelle, mais fournit plutôt un environnement virtuel qui a son propre process et son espace réseau. C'est similaire à un chroot, mais offre beaucoup plus d'isolement.

Les conteneurs Linux ont plusieurs fonctionnalités / avantages:

Avantages:

Mieux isoler par rapport à un chroot (chroot prison). Faibles frais généraux. LXC utilise des ressources minimales en termes de RAM et d'espace disque sans les frais généraux d'installation d'un operating system invité dans une machine virtuelle (VMWare / VirtualBox / KVM).

Les applications et les services (servers) fonctionnent à la vitesse native.

Il existe un support pour les conteneurs Linux dans libvirt.

Les conteneurs Linux fonctionnent bien avec btrfs.

Mais il y a aussi un inconvénient:

Les conteneurs Linux exécutent des process Linux sur un kernel Linux. Cela signifie que vous pouvez exécuter Linux (conteneur Fedora sur un hôte Ubuntu), mais pas d'autres systèmes d'exploitation (pas BSD / OSX / Windows).

Il n'existe aucune interface graphique (graphique) pour configurer ou gérer les conteneurs.

Il existe une pénurie de documentation sur la façon d'installer et de configurer un conteneur. La configuration d'un conteneur nécessite une connaissance et une compétence techniques modestes (et une grande quantité de patience).