作为用户啊,我需要登录共享帐户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