Deseja preservar bashrc e vimrc ao alternar para usuários não raiz

0

Eu estou em um sistema multiusuário. Eu tenho sudo b / c eu sou responsável, eu acho. Às vezes, eu quero mudar para outro usuário para ajudá-los a fazer algo, mas eu tenho um bashrc / vimrc enganado e eu gostaria de mantê-los.

Para root, é bem fácil. No meu .bashrc :

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

Basicamente, isso significa que sudo -i me faz root, origina meu .bashrc e mantém meu $HOME como /home/jeremy em vez de /root , significando que o vim procura no local apropriado para cores, rcfiles e coisas.

Eu quero fazer algo semelhante com outros usuários. O ideal:

  • source meu .bashrc ; obtenha o vim para usar meu .vim/ material como vimrc , colors/ , etc.

  • não codifica caminhos - em alguns sistemas eu sou jeremy ; em outros eu sou jdr , etc.

  • requer uma digitação extra mínima para que tudo isso funcione aliasing ou funcione com as coisas ruins.

Para o root, consegui alias -i para outro comando totalmente que fez o que eu queria. man bash não lista nenhuma opção para fazer as coisas como outro usuário. man sudo faz, mas eu não teria nenhuma opção para obter um .bashrc . su parecia promissor, pois man su diz que su -m preserva o ambiente e não define USER ou HOME, mas eu teria que sudo su -m , que define meu USER para root . Eu não posso adicionar comandos usando && ou algo assim porque eu precisaria dos comandos para executar no novo shell em vez de depois que o shell sai. Em suma, nenhum dos comandos que conheço pode fazer o que eu quero.

O mais próximo que consegui foi sudo -Esu user , o que me torna user e mantém todos os vars que eu exportei. Eu poderia colocar algo como export x=". $HOME/.bashrc" em meu .bashrc e, em seguida, eval $x quando eu me tornar user , mas isso dá erros de permissão e definir + x em .bashrc não é suficiente porque as permissões padrão do meu diretório home impedem acesso por outros usuários e não tenho certeza se gostaria de mudar isso a menos que não haja outra opção. Nem todos os usuários que eu estou me tornando têm privilégios, então não posso apenas sudo meu caminho.

TL; DR: torna-se outro usuário enquanto mantém as configurações de aliases, funções, PS1, PROMPT_COMMAND e vim do meu usuário atual. Bash 4.2

    
por jeremysprofile 13.08.2018 / 17:45

0 respostas

Tags