como usar um shell diferente ao mudar para root

2

Eu tenho algumas configurações pessoais no meu shell de usuário, por exemplo: .vimrc e .bash_profile e outras coisas.

é possível mudar para root usando su - , mas ao mesmo tempo usar o perfil do meu usuário?

    
por Anand 16.08.2016 / 16:20

3 respostas

2

O - informa su para originar o perfil e o ambiente do usuário de destino. Se você quiser manter seu antigo ambiente (ou seja, o ambiente do usuário), simplesmente desative o - e use apenas su . Naturalmente, qualquer componente de caminho exclusivo para o usuário raiz não estará presente e terá que ser adicionado manualmente.

    
por 16.08.2016 / 16:22
1

Você pode inserir isso no .bash_profile ou .bashrc da raiz, o que for mais conveniente e disponível.

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 

Se precisar de alguma explicação, basta perguntar, ou melhor, testá-la no seu sistema.

    
por 16.08.2016 / 16:28
1

su - significa "mudar para root e executá-lo como um shell de login" (também su -l e su --login ).

Agora, mesmo sem a variável - , o $HOME será definido e, portanto, $HOME/.vimrc apontará para a versão root .

O que precisamos é da opção --preserve-environment .

su --preserve-environment

Isso executará um shell de root, mas deixará $HOME intacto e executará seu próprio shell (por exemplo, se você usar ksh ou zsh ) e executará seus arquivos de ponto

por exemplo

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

Tags