루트가 아닌 사용자로 전환할 때 bashrc 및 vimrc를 유지하고 싶습니다.

루트가 아닌 사용자로 전환할 때 bashrc 및 vimrc를 유지하고 싶습니다.

저는 다중 사용자 시스템을 사용하고 있습니다. 나는 sudo b/c를 가지고 있습니다. 책임이 있는 것 같아요. 때로는 다른 사용자에게 도움을 주기 위해 전환하고 싶지만 스푸핑된 bashrc/vimrc가 있고 이를 유지하고 싶습니다.

루트의 경우 이는 매우 간단합니다. 내 .bashrc:

alias sudo='sudo '
alias -- -i='bash --rcfile $HOME/.bashrc'
export HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"

기본적으로 이것이 의미하는 바는 sudo -i내가 루트가 되어 my 를 가져오고 대신 .bashrcmy 를 유지한다는 것입니다 . 이는 vim이 색상 및 rcfile과 같은 항목을 찾기에 적합한 위치에 있음을 의미합니다.$HOME/home/jeremy/root

다른 사용자가 되는 것과 비슷한 일을 하고 싶습니다. 이상적인:

  • 원천내 거 .bashrc; vim을 사용하자내 거 .vim/그런 vimrccolors/

  • 경로를 하드코딩하지 마세요. 어떤 시스템에서는 나이고 jeremy다른 시스템에서는 나입니다 jdr.

  • 이 모든 작업은 최소한의 추가 입력으로 별칭이나 함수를 통해 수행할 수 있습니다.

루트의 경우 -i다른 명령을 완전히 사용하여 원하는 작업을 수행할 수 있습니다. man bash다른 사용자로 작업을 수행하기 위한 옵션이 나열되어 있지 않습니다. man sudo그렇긴 하지만 얻을 수 있는 옵션이 없습니다 .bashrc. 말했듯 이 환경을 유지하고 USER 또는 HOME을 설정하지 않는 것이 su유망해 보이지만 USER를 로 설정 해야 합니다 . using 또는 다른 명령을 추가할 수 없습니다 . 왜냐하면 쉘이 종료된 후가 아니라 새 쉘에서 명령을 실행해야 하기 때문입니다. 간단히 말해서, 내가 아는 명령 중 어느 것도 내가 원하는 대로 작동하지 않습니다.man susu -msudo su -mroot&&

내가 얻을 수 있는 가장 가까운 것은 내가 내보내는 모든 변수를 sudo -Esu user만들고 유지한다는 것입니다 . my 및 에 이와 같은 것을 추가 user할 수 있지만 이로 인해 권한 오류가 발생하고 +x를 설정하는 것만으로는 충분하지 않습니다. 내 홈 디렉토리에 대한 기본 권한으로 인해 다른 사용자가 해당 디렉토리에 액세스할 수 없기 때문입니다. 다른 옵션이 없는 한 이를 변경하고 싶습니다. 내가 원하는 모든 사용자가 권한을 갖고 있는 것은 아니기 때문에 들어갈 수 없습니다 .export x=". $HOME/.bashrc".bashrceval $xuser.bashrcsudo

간단히 말해서:현재 사용자의 별칭, 함수, PS1, PROMPT_COMMAND 및 vim 구성을 유지하면서 다른 사용자가 됩니다. 배쉬 4.2

관련 정보