将exec / bin / bash添加到脚本中使其行为完全像/ bin / bash吗?

时间:2019-05-18 15:45:05

标签: bash docker exec

我试图创建一个看起来像/bin/bash的脚本,但实际上它是一个shell脚本,以不同的用户身份在内部执行bash。

请考虑以下user-bash.sh文件。

#!/usr/bin/env bash
set -e

USER_ID="$USER_ID"

if [ -z "$USER_ID" ]; then
    echo "Set USER_ID to 1000"
    USER_ID="1000"
fi

# Create the dummy user, if it doesn't exist.
id dummy > /dev/null 2>&1 || { 
    echo "Creating dummy user..."
    useradd -u ${USER_ID} dummy
    mkdir -p /home/dummy/.ssh
}

# Doesn't work, but I think it illustrates what I'm trying to do.
su dummy -c "/bin/bash"

我希望user-bash.sh的行为与/bin/bash完全一样,包括对stdin / stdout,参数和退出代码的支持。

我该怎么做?

在某些背景下,我试图为始终以另一个用户身份执行的Docker映像创建一个入口点脚本。大多数图像的默认入口点是/bin/bash。我想做成/bin/user-bash.sh

0 个答案:

没有答案