![루트가 아닌 사용자로 전환할 때 bashrc 및 vimrc를 유지하고 싶습니다.](https://linux55.com/image/138554/%EB%A3%A8%ED%8A%B8%EA%B0%80%20%EC%95%84%EB%8B%8C%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A1%9C%20%EC%A0%84%ED%99%98%ED%95%A0%20%EB%95%8C%20bashrc%20%EB%B0%8F%20vimrc%EB%A5%BC%20%EC%9C%A0%EC%A7%80%ED%95%98%EA%B3%A0%20%EC%8B%B6%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
저는 다중 사용자 시스템을 사용하고 있습니다. 나는 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 를 가져오고 대신 .bashrc
my 를 유지한다는 것입니다 . 이는 vim이 색상 및 rcfile과 같은 항목을 찾기에 적합한 위치에 있음을 의미합니다.$HOME
/home/jeremy
/root
다른 사용자가 되는 것과 비슷한 일을 하고 싶습니다. 이상적인:
원천내 거
.bashrc
; vim을 사용하자내 거.vim/
그런vimrc
것colors/
경로를 하드코딩하지 마세요. 어떤 시스템에서는 나이고
jeremy
다른 시스템에서는 나입니다jdr
.이 모든 작업은 최소한의 추가 입력으로 별칭이나 함수를 통해 수행할 수 있습니다.
루트의 경우 -i
다른 명령을 완전히 사용하여 원하는 작업을 수행할 수 있습니다. man bash
다른 사용자로 작업을 수행하기 위한 옵션이 나열되어 있지 않습니다. man sudo
그렇긴 하지만 얻을 수 있는 옵션이 없습니다 .bashrc
. 말했듯 이 환경을 유지하고 USER 또는 HOME을 설정하지 않는 것이 su
유망해 보이지만 USER를 로 설정 해야 합니다 . using 또는 다른 명령을 추가할 수 없습니다 . 왜냐하면 쉘이 종료된 후가 아니라 새 쉘에서 명령을 실행해야 하기 때문입니다. 간단히 말해서, 내가 아는 명령 중 어느 것도 내가 원하는 대로 작동하지 않습니다.man su
su -m
sudo su -m
root
&&
내가 얻을 수 있는 가장 가까운 것은 내가 내보내는 모든 변수를 sudo -Esu user
만들고 유지한다는 것입니다 . my 및 에 이와 같은 것을 추가 user
할 수 있지만 이로 인해 권한 오류가 발생하고 +x를 설정하는 것만으로는 충분하지 않습니다. 내 홈 디렉토리에 대한 기본 권한으로 인해 다른 사용자가 해당 디렉토리에 액세스할 수 없기 때문입니다. 다른 옵션이 없는 한 이를 변경하고 싶습니다. 내가 원하는 모든 사용자가 권한을 갖고 있는 것은 아니기 때문에 들어갈 수 없습니다 .export x=". $HOME/.bashrc"
.bashrc
eval $x
user
.bashrc
sudo
간단히 말해서:현재 사용자의 별칭, 함수, PS1, PROMPT_COMMAND 및 vim 구성을 유지하면서 다른 사용자가 됩니다. 배쉬 4.2