![ルートになるとbashrcファイルを自動的に取得する方法[重複]](https://linux33.com/image/229792/%E3%83%AB%E3%83%BC%E3%83%88%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%A8bashrc%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%87%AA%E5%8B%95%E7%9A%84%E3%81%AB%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%5B%E9%87%8D%E8%A4%87%5D.png)
私の職場では、複数の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
# _