我试图创建一个看起来像/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
。