私の職場では、複数のRHELサーバーで複数の人と連携する必要があります。
私は常に一般ユーザーとしてLinuxサーバーにログインします(duh)。私のファイル.bashrc
にアドオン/エイリアスを追加するとしましょう。.bashrc
rootに上昇しても権限を維持する方法はありますか?変更したときに.bashrc
元のユーザーを取得するには、私のコマンド/エイリアスにコマンド/エイリアスを追加しますか?.bashrc
これを行う最良の方法は何ですか?ログインしている他のユーザーには問題はありません。
したがって、ログインしてuser1
実行しますsudo su -
が、エイリアスと機能はそのままにしてくださいuser1
。
答え1
ローカルアカウントを使用している場合は、ルートbashrcに追加してください。
if [ -n "$SUDO_USER" ]; then
OLDHOME="$( getent passwd "$SUDO_USER" | cut -f 6 -d':' )"
if [ -f "${OLDHOME}/.bashrc" ]; then
source "${OLDHOME}/.bashrc"
fi
fi
目的の動作に応じて、既存の定義の前または後に選択されます。
答え2
私のシステムはsudo -s
ルートシェルを提供しますが、ディレクトリは変更しないので、シェル$HOME
の場合はbash
自分のシェルを呼び出すことになります$HOME/.bashrc
。 ($HOME
簡単な設定sudo -s
はで構成可能なオプションなので、ユーザー/etc/sudoers
ごとに異なる場合があります。とをsudo -s
比較してみてくださいsudo -sH
。異なる場合は効果がありますが、同じ結果が出る場合は必要です。さまざまなソリューション.)
私はそれぞれのアカウントとルートアカウントにすでに存在する場所に次の行を追加し、毎回ファイル名に基づいて適切な置換が行われるように~/.bashrc
テキストを編集しました。~/.profile
~/.bash_profile
.bash_profile
test -t 2 && echo "> This is $HOME/.bash_profile for ${USER:-unknown}" >&2
roaima
私()でログインしてください。
sudo -s
>> This is /home/roaima/.bashrc for root
# _
また私に(roaima
):
sudo -sH
>> This is /root/.bashrc for root
roaima
ついに私に戻ります():
sudo -i
>> This is /root/.profile for root
>> This is /root/.bashrc for root
# _