newgrp 之后是否仍保留在交互式 shell 中?

newgrp 之后是否仍保留在交互式 shell 中?

对于我的大多数项目,我的默认主组是正确的。但是,对于其中一个项目,我需要在进入其环境之前设置一个新的主组,以避免后续出现权限问题。目前,这是一个两步过程:

  1. $ newgrp specialgroup
  2. $ source specialenvironment

我想将其简化为一个命令。我认为我应该能够这样做:

$ sg specialgroup -c "bash --login -c 'source specialenvironment'"

我认为这将创建一个子 shell,其中组设置为 'specialgroup',然后创建另一个立即获取源的子 shell specialenvironment。然而,事实并非如此,所以我显然搞错了。

未解决我的问题的类似问题:
1-你如何在脚本中使用 newgrp,然后在脚本退出时留在该组中
2-在脚本中运行 newgrp 命令时出现问题

关于如何解决这个问题有什么想法吗?

答案1

在末尾添加这行.bashrc

[ $(id -g) -eq 1234 ] && source specialenvironment

1234的 GID在哪里specialgroup;使用正确的数字。这样,当您运行 sole 时

newgrp specialgroup

specialenvironment将自动获取。

相关内容