[求开源项目] 有一台 Linux 的 ecs,请问能否把他变成一个可以多个用户练习 shell 命令的服务器

2020-04-28 17:44:57 +08:00
 a174871

请问有没有这样的开源项目?最好支持用户退出数据还原,用户登入创建新的环境,只要命令行就可以。

2434 次点击
所在节点    程序员
19 条回复
a174871
2020-04-28 17:46:55 +08:00
或者诸位大佬有其他的解决方案也行,不然我就得手动批量添加用户了
noli
2020-04-28 17:48:39 +08:00
FreeBSD Jail
Yourshell
2020-04-28 17:53:30 +08:00
chroot 啊
arist
2020-04-28 17:57:08 +08:00
这个是我们开发机上创建用户的脚本,我简化了一下,使用很简单, ./add_user.sh username
可以创建一个用户,只能在自己的目录下玩耍。

add_user.sh
#!/bin/bash
# Script to add a user to Linux system

function generate_pass() {
MATRIX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
LENGTH=$1
while [ "${n:=1}" -le "$LENGTH" ]
do
PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"
let n+=1
done
echo "$PASS"
}

username=$1

if [ -z $username ];then
echo "username is empty"
exit 1
fi

password=$(generate_pass 6)

if [ $(id -u) -eq 0 ]; then
egrep "^$username" /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
echo "$username exists!"
exit 1
else
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
useradd -m -p $pass $username
# record
time=$(date "+%Y-%m-%d-%H-%M-%S")
echo "create username $username with password $password at $time" >> user_account.txt
[ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!"
fi
else
echo "Only root may add a user to the system"
exit 2
fi
nguoidiqua
2020-04-28 18:09:44 +08:00
有这样的项目,就是用户可以即使申请一个虚机练练手,只有几个小时的有效期,具体几个小时用户可以自己选,有多种发行版可选。

但是名字叫什么忘记了,可以自己搜索看看。
conn4575
2020-04-28 18:13:05 +08:00
docker ?
cdlnls
2020-04-28 18:14:27 +08:00
记得有一个基于 docker 的项目,它有一个 web 界面,可以临时创建各种系统的容器
libook
2020-04-28 18:16:22 +08:00
可以尝试容器技术,比如 Docker 或 Podman,可以在一台机器上同时运行多个隔离的环境,而且如果想重置一个实例到未使用状态也非常方便。
cdlnls
2020-04-28 18:18:55 +08:00
xiri
2020-04-28 18:27:04 +08:00
chroot
nguoidiqua
2020-04-28 18:36:36 +08:00
9 楼发的 instant box 就是我说那个项目,不过他链接给错了。

另外,参考实验楼网站的方案也可以,限制比较多但安全。
cloverzrg2
2020-04-28 18:57:27 +08:00
docker
NeilWang
2020-04-28 20:34:23 +08:00
@cdlnls play with docker,网站也在 github 开源了
a174871
2020-04-28 21:59:50 +08:00
@cdlnls 您好,链接似乎有问题,谢谢您
a174871
2020-04-28 22:00:36 +08:00
@nguoidiqua 是的是的,最高预期就是实验楼那种,可是不知道自动判题有没有好的方案
flyhelan
2020-04-29 04:06:53 +08:00
@nguoidiqua 叫实验楼。
musi
2020-04-29 08:10:07 +08:00
阿里云好像自带这个功能,不需要买 ecs
huntcool001
2020-04-29 08:55:00 +08:00
阿里云有"云命令行" 可以免费用, 练习 shell 命令足够了.
phpsir
2020-04-29 09:21:46 +08:00
直接给大家 root 好了,弄坏了 云重装就是了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/667024

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX