2017-10-01 2 views
0

Je cherche un peu d'aide sur la façon de dockerize sessions utilisateur sous Linux. Ce que je cherche est de savoir comment je le ferais quand quelqu'un ssh est dans un compte et fait quelque chose, quand ils quittent tout ce qu'ils ont fait n'est pas sauvé; C'est comme ça que je l'ai mis en place la prochaine fois que quelqu'un d'autre est dedans.sessions utilisateur Dockerize

Il est pour un événement de la FCE, j'ai été chargé de la mise en place et vraiment aucune connaissance de la plupart de ce que je dois faire tout ce processus est une expérience d'apprentissage pour moi.

Une bonne explication de la façon dont j'espère avoir mis en place est expliqué ici: http://overthewire.org/help/sshinfra.html

+0

donc vous même utilisateur partagé avec des personnes différentes ou chacun serait un utilisateur différent tous ensemble? –

+0

Chaque utilisateur obtiendrait son propre conteneur lorsqu'ils se connectent leur session ssh débordement – Keith

+0

Stack est un site pour les questions de programmation et de développement. Cette question semble être hors sujet car il ne s'agit pas de programmation ou de développement. Voir [Quels sujets puis-je poser à ce sujet?] (Http://stackoverflow.com/help/on-topic) dans le centre d'aide. Peut-être [Super User] (http://superuser.com/) ou [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) serait un meilleur endroit à demander. – jww

Répondre

-1

Ainsi, vous pouvez le faire en créant une nouvelle coquille à base de docker pour l'utilisateur

Création de l'utilisateur

D'abord, nous créons l'utilisateur à l'aide ci-dessous commande

sudo useradd --create-home --shell /usr/local/bin/dockershell tarun 
echo "tarun:tarunpass" | sudo chpasswd 
sudo usermod -aG docker tarun 

Création du shell

Suivant créer un fichier shell /usr/local/bin/dockershell

#!/bin/bash 

docker run -it --rm ubuntu:latest /bin/bash 

Et puis chmod +x /usr/local/bin/dockershell. Maintenant, vous pouvez ssh à votre machine virtuelle avec le nouvel utilisateur

$ ssh [email protected] 
[email protected]'s password: 
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-66-generic x86_64) 

* Documentation: https://help.ubuntu.com 
* Management:  https://landscape.canonical.com 
* Support:  https://ubuntu.com/advantage 

0 packages can be updated. 
0 updates are security updates. 


Last login: Sun Oct 1 06:50:06 2017 from 192.168.33.1 
Starting shell for tarun 
[email protected]:/# 

Cela me prend au conteneur docker et aucune modification de session sont enregistrés. Si vous voulez sécuriser encore plus, vous devriez être namespace utilisateur remappant

https://success.docker.com/KBase/Introduction_to_User_Namespaces_in_Docker_Engine

+0

Merci, je vais essayer de tester ça aujourd'hui et de vous raconter comment ça marche! – Keith

+0

C'est en quelque sorte et fonctionne maintenant! Votre conseil a plutôt bien fonctionné. Maintenant, le seul problème est que le répertoire personnel n'ajoute pas lors de la création de l'utilisateur, et j'ai besoin d'ajouter des fichiers dans les répertoires personnels. – Keith

+0

@Keith, vous pouvez le faire en utilisant une image personnalisée et lui passer un environnement pour le nom de dossier qui devrait exister. –

-1

quand ils sortent de quoi que ce soit, ils ne sont pas enregistrées

C'est parce que la couche inscriptible d'un conteneur est mis au rebut lorsque le conteneur s'arrête.

Vous devez vous assurer que votre conteneur est exécuté avec bind mount ou (mieux) a volume: de cette façon, la modification effectuée pendant le SSH, si elle est effectuée dans le chemin (monté) de droite, persisterait.

https://docs.docker.com/engine/admin/volumes/images/types-of-mounts-volume.png

+0

Je pense que vous avez mal compris la question, il regarde comment installer un SSH sur le serveur où la session de l'utilisateur s'exécute dans un conteneur docker et aucun changement de la session est enregistré –

+0

"aucune modification de la session est enregistrée" quelle session? le SSH, ou le docker container un? Le premier devrait être sauvegardé, puisqu'il est sur l'hôte. Ce dernier a besoin de volume. – VonC

+0

L'attente est que la session SSH à l'hôte vous emmène dans un conteneur docker et non l'hôte.Et les modifications du conteneur docker ne doivent pas être enregistrées. Ce qui de toute façon ne serait pas si ne cartographie pas les volumes. Donc la question est plus sur la façon de configurer un serveur afin que SSH pour un utilisateur peut être envoyé directement à un shell de conteneur docker au lieu du shell hôte –