Добавление exec / bin / bash в скрипт, чтобы вести себя точно так же, как / bin / bash? - PullRequest
0 голосов
/ 18 мая 2019

Я пытаюсь создать сценарий, который выглядит точно так же, как /bin/bash, но на самом деле это сценарий оболочки, который выполняет 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...