Não use sudo su
. O su
é inútil, pois você já se tornou root usando sudo
.
Use sudo -Es
. Isso preservará o meio ambiente. No entanto, há um porém. Como o shell está sendo lançado interativamente, ele irá fornecer ~/.bashrc
, que presumivelmente redefinirá $PS1
. No entanto, $HOME
é preservado, então o bash usará seu diretório inicial ao procurar .bashrc
e não a raiz de sua origem. Assim seu perfil será usado.
Isso tem um problema possível. Como mencionado, $HOME
está definido para a casa do usuário, portanto, qualquer comando que crie arquivos em $HOME/
os criará como raiz. Embora isso não importe se os arquivos já existem e são apenas sobrescritos.
Se você realmente deseja preservar $PS1
, pode fazê-lo, mas não é tão simples:
sudo -E bash --norc
ou
sudo PS1="$PS1" bash --norc
As principais desvantagens disso são que este método usa explicitamente bash
como o shell, e --norc
também é uma opção específica do bash. O método sudo -Es
acima usará o que for que $SHELL
esteja definido, o que importa se você não estiver usando bash
.
Além disso, ao usar o método -E
, você precisa garantir que $PS1
seja exportado.