グループにユーザーを追加すると自動失敗

グループにユーザーを追加すると自動失敗

環境設定スクリプトの一部としてDockerをインストールするための次のコードスニペットがあります。

if [ ! "$(docker -v)" ]; then
    infoMessage "Setting up Docker..."

    echo "Updating system packages.."
    sudo apt-get update

    echo "Installing dependencies..."
    sudo apt -y install apt-transport-https ca-certificates curl software-properties-common

    echo "Adding GPG key..."
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    echo "Adding docker repository..."
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

    apt-cache policy docker-ce
    echo "Installing docker engine..."
    sudo apt-get -y install docker.ce

    sudo usermod -aG docker ${USER}
    newgrp docker
fi

しかし、2人の開発者にとって、何らかの理由でdockerをインストールした後とインストールする前にスクリプトが自動的にシャットダウンされましたfi( 'sと見つかりました)。または注文してください。終了コードはゼロで、個人設定と変更を除いて、機能的に他のコンピュータと同じである必要があるコンピュータでのみこれが発生する理由は完全に混乱しています。コマンドを単独で実行すると問題はなく、スクリプトを再実行して設定を完了できます。echousermodnewgrp

中断文字を確認しましたが、スクリプトの他の部分と同じ LF(\n) です。彼らはUbuntu 18.04を実行しています。

ベストアンサー1

その理由は、newgrp基本的に新しいbashインスタンスを作成するため、終了するまでスクリプトを実行し続けることができないためです。本質的にsu - $(id -u -n);スクリプトと同じです。

おすすめ記事