루트로 변경할 때 다른 쉘을 사용하는 방법

루트로 변경할 때 다른 쉘을 사용하는 방법

내 사용자 셸에는 다음 .vimrc과 같은 몇 가지 개인 설정이 있습니다 ..bash_profile

su -루트 사용으로 전환 하면서 내 사용자 프로필도 사용할 수 있나요 ?

답변1

대상 사용자의 프로필과 환경을 -가져오도록 지시합니다 . su이전 환경(즉, 사용자 환경)을 유지하려면 생략하고 -. su물론 루트 사용자와 관련된 경로 구성 요소는 존재하지 않으며 수동으로 추가해야 합니다.

답변2

su -"루트로 전환하여 로그인 셸로 실행"( su -l및 라고도 함 su --login)을 의미합니다.

-이제 변수 가 없어도 $HOME설정이 되어 있어서 버전을 $HOME/.vimrc가리키게 됩니다 .root

우리에게 필요한 것은 --preserve-environment선택입니다.

su --preserve-environment

이는 루트 쉘을 실행하지만 $HOME동일하게 유지되며 자체 쉘(예: ksh또는 를 사용하는 경우 zsh)을 실행하고 도트 파일을 실행합니다.

예를 들어

$ su --preserve-environment  
Password: 
# id
uid=0(root) gid=0(root) groups=0(root)
# echo $HOME
/home/sweh
# echo $0
ksh
# 

답변3

루트에 연결 .bash_profile하거나 .bashrc더 편리하고 사용 가능한 곳에 연결할 수 있습니다.

profile=anand # let's assume this is your user name
myorigusername=$(who am i | awk {'print $1'})
if [ "${myorigusername}" = "${profile}" ]
then
  cd ~${myorigusername}
  . ./.vimrc
  . ./.bash_profile
  # other stuff here
fi 

설명이 필요하면 물어보거나 시스템에서 테스트해 보는 것이 더 좋습니다.

관련 정보