在 shell 脚本中将用户添加到 ubuntu linux 组

在 shell 脚本中将用户添加到 ubuntu linux 组

我正在编写一个 bash 脚本来设置 docker 应用程序以及配置等。它旨在在全新安装的 Ubuntu 中运行并完全自动化 - 只需按回车键并等待(尽管在此过程中输入 sudo 密码)。这个想法是,普通用户运行脚本,到最后,他们已经安装了 docker 并且应用程序正在运行。我遇到的问题是,这部分包括将用户添加到“docker”组,然后在脚本中运行需要用户包含在组中的其他命令。现在,命令:

sudo usermod -aG docker ${USER}

添加它们很不错,但用户需要再次注销/登录才能激活会员资格,但我想立即在同一个脚本中使用他们的会员资格,例如:

docker exec blah blah

我已经探索过 newgrp,但是这将启动一个子 shell,并且对于完全自动化的脚本来说不会有帮助。

(不要告诉任何人,但在这种情况下我不介意答案有点“黑客”。)

答案1

我可能在“sg”命令中有一个答案,然后我可以在脚本的其余部分使用它来执行docker命令。例如

sg docker -c "docker run blah blah"

用户在脚本末尾仍会被“取消锁定”,直到他们注销/登录,但我可以忍受这一点。

相关内容