Shell-Script

在 bash 中登錄時設置為非預設使用者組

  • March 23, 2019

使用 .bashrc 登錄後,如何將使用者組設置為非預設組,例如 targetgroup?

具體來說,我的問題是我可以在命令行上執行:

newgrp - targetgroup

但是當我在 .bashrc 中包含這一行時,終端會在登錄時凍結。

這個問題與在腳本中執行“newgrp”命令時出現問題有關,但我沒有足夠的聲譽發表評論。所以我嘗試了:

echo "Before newgrp"
/usr/bin/newgrp - targetgroup <<EONG
echo "hello from within newgrp"
id
EONG
echo "After newgrp"

這使:

Before newgrp
Before newgrp
Before newgrp
Before newgrp
Before newgrp
Before newgrp
Before newgrp
Before newgrp
^C
After newgrp

所以 KornShell 的技巧似乎不適用於 bash,因為我必須使用 ^C 退出。

有什麼方法可以newgrp在每次登錄時將組設置為 targetgroup 的工作或其他 .bashrc 行?(注意我沒有超級使用者權限。)

對於 CentOS 6,您可以嘗試添加(不帶破折號)

newgrp targetgroup

到你的.bash_profile.

至少對於 CentOS 6.10,這會將有效組更改為targetgroup互動式 shell

  • 對於新的登錄外殼
  • source ~/.bash_profile

bash當“僅”啟動另一個或source ~/.bashrc在現有控制台中時,組不會更改。

引用自:https://unix.stackexchange.com/questions/508082