제 직장에서는 여러 RHEL 서버에서 여러 사람과 함께 작업해야 합니다.
저는 항상 일반 사용자로 Linux 서버에 로그인합니다(duh). 내 파일 .bashrc
에 추가 기능/별칭을 추가한다고 가정해 보겠습니다. .bashrc
루트로 상승해도 권한을 유지할 수 있는 방법이 있나요? 변경할 때 .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
# _