切换到另一个用户并源个人 bashrc 文件

切换到另一个用户并源个人 bashrc 文件

作为用户,我需要登录共享帐户BB。我登录后BB,我想获取个人 bashrc 文件,该文件仅供我自己使用,而不是任何其他用户使用。我怎样才能在一行命令中实现这一点?我找到一些可能的答案,例如

sudo -iu bb bash -c 'source bashrc_aa'

但此后它将变回用户, 我想保留用户身份BB。有什么解决办法吗?

答案1

作为解决方法,您可以简单地修改 bb .profile(或~/.bash_profile如果存在)来获取运行该命令的任何用户的 .bashrc 文件sudo

if [[ -n $SUDO_USER ]]; then
    . /home/"$SUDO_USER"/.bashrc 
fi

或者,如果您不能假设主目录位于/home/user_name,您可以从以下位置读取它/etc/passwd

if [[ -n $SUDO_USER ]]; then
    homeDir=$(awk -F':' -v s="$SUDO_USER" '$1==s{print $6}' /etc/passwd)
    . "$homeDir"/.bashrc 
fi

这将适用于所有sudo进入 的用户bb,但在每种情况下它都会源他们的bashrc。或者,您可以仅为您的用户进行更改:

if [[ $SUDO_USER == "aa" ]]; then
    . /home/aa/.bashrc 
fi

相关内容