Dockerize用户会议

我正在寻找一些关于如何在Linux中dockerize用户会话的帮助。 我正在寻找的是如何做到这一点,当有人ssh进入一个帐户,做任何事情,当他们退出任何他们没有保存; 这就是我在下一次有其他人ssh进入它的时候设置它的方式。

这是CTF活动,我负责设立,而且对于我所要做的大部分工作都不了解,整个过程对我来说是一个学习的经验。

我希望如何build立一个很好的解释在这里解释: http : //overthewire.org/help/sshinfra.html

Solutions Collecting From Web of "Dockerize用户会议"

所以你可以通过为用户创建一个新的基于docker的shell来做到这一点

创建用户

首先我们使用下面的命令创建用户

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

创建shell

接下来创建一个shell文件/usr/local/bin/dockershell

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

然后chmod +x /usr/local/bin/dockershell 。 现在你可以用新用户ssh到你的vm

 $ ssh tarun@vm tarun@vm'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 root@79c12f002708:/# 

这带我到码头集装箱,没有会话更改保存。 如果你想更安全的话,你应该是用户命名空间重映射

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

当他们退出任何他们没有保存

这是因为当容器停止时,容器的可写层被丢弃。

你应该确保你的容器是以绑定安装或更好的音量运行的 :这样,在ssh中完成的修改(如果在正确的(安装的)路径中完成的话)将会持续存在。

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