• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Entropy0
V2EX  ›  程序员

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

  •  
  •   Entropy0 · Apr 28, 2020 · 3946 views
    This topic created in 2379 days ago, the information mentioned may be changed or developed.

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

    19 replies  •  2020-04-29 09:21:46 +08:00
    Entropy0
    Entropy0
    OP
    Apr 28, 2020
    1
    或者诸位大佬有其他的解决方案也行,不然我就得手动批量添加用户了
    noli
    noli
    Apr 28, 2020
    2
    FreeBSD Jail
    Yourshell
    Yourshell
    Apr 28, 2020
    3
    chroot 啊
    arist
    arist
    Apr 28, 2020❤️1
    4
    这个是我们开发机上创建用户的脚本,我简化了一下,使用很简单, ./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
    nguoidiqua
    Apr 28, 2020
    5
    有这样的项目,就是用户可以即使申请一个虚机练练手,只有几个小时的有效期,具体几个小时用户可以自己选,有多种发行版可选。

    但是名字叫什么忘记了,可以自己搜索看看。
    conn4575
    conn4575
    Apr 28, 2020 via Android
    6
    docker ?
    cctv6
    cctv6
    Apr 28, 2020 via iPhone
    7
    记得有一个基于 docker 的项目,它有一个 web 界面,可以临时创建各种系统的容器
    libook
    libook
    Apr 28, 2020
    8
    可以尝试容器技术,比如 Docker 或 Podman,可以在一台机器上同时运行多个隔离的环境,而且如果想重置一个实例到未使用状态也非常方便。
    imkuang
    imkuang
    Apr 28, 2020 via Android
    10
    chroot
    nguoidiqua
    nguoidiqua
    Apr 28, 2020❤️1
    11
    9 楼发的 instant box 就是我说那个项目,不过他链接给错了。

    另外,参考实验楼网站的方案也可以,限制比较多但安全。
    cloverzrg2
    cloverzrg2
    Apr 28, 2020
    12
    docker
    NeilWang
    NeilWang
    Apr 28, 2020 via Android
    13
    @cdlnls play with docker,网站也在 github 开源了
    Entropy0
    Entropy0
    OP
    Apr 28, 2020
    14
    @cdlnls 您好,链接似乎有问题,谢谢您
    Entropy0
    Entropy0
    OP
    Apr 28, 2020
    15
    @nguoidiqua 是的是的,最高预期就是实验楼那种,可是不知道自动判题有没有好的方案
    flyhelan
    flyhelan
    Apr 29, 2020
    16
    @nguoidiqua 叫实验楼。
    musi
    musi
    Apr 29, 2020 via iPhone❤️1
    17
    阿里云好像自带这个功能,不需要买 ecs
    huntcool001
    huntcool001
    Apr 29, 2020❤️1
    18
    阿里云有"云命令行" 可以免费用, 练习 shell 命令足够了.
    phpsir
    phpsir
    Apr 29, 2020❤️1
    19
    直接给大家 root 好了,弄坏了 云重装就是了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5188 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 03:27 · PVG 11:27 · LAX 19:27 · JFK 22:27
    ♥ Do have faith in what you're doing.