別のユーザーに切り替えて、プライベートbashrcファイルを調達します。

別のユーザーに切り替えて、プライベートbashrcファイルを調達します。

ユーザーとしてああ、共有アカウントにログインする必要がありますBB。ログイン後BB、他のユーザーではなく、私だけが使用できるプライベートbashrcファイルを取得したいと思います。一行のコマンドでこれをどのように達成できますか?次の可能な答えを見つけました。

sudo -iu bb bash -c 'source bashrc_aa'

しかし、その後、再びユーザーに変更されます。ああ、私のユーザーIDを維持したいと思います。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

関連情報