루트가 될 때 bashrc 파일을 자동으로 얻는 방법 [중복]

루트가 될 때 bashrc 파일을 자동으로 얻는 방법 [중복]

제 직장에서는 여러 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
# _

관련 정보