Eu fiz alterações no meu sistema Arch Linux x86-64 onde executo bash exclusivamente através do que eu acho que é o modo POSIX, usando /bin/sh
(linkado para '/ bin / bash') como meu shell de login e em vez de colocando coisas em /etc/profile
eu defini ENV=/etc/shrc
no meu /etc/environment
conforme o manual do Bash, para que ele execute o arquivo /etc/shrc
na inicialização, onde todos os meus aliases, prompt e coisas semelhantes acontecem.
Basicamente, eu queria abandonar completamente os recursos específicos do Bash, incluindo o /etc/profile
e os amigos.
O problema surgiu entretanto, onde ao executar sudo
, não há ENV
variable, como sudo
aparentemente redefinir o ambiente (seja após analisar /etc/environment
ou sem fazer isso) e, portanto, todos os meus aliases e as coisas se foram. sudo -i
faz o mesmo, basicamente - não é ENV
.
Devo considerar isso benéfico para a segurança do sistema ou devo fazer algo sobre isso, como tornar sudo preserve ENV
variable?
Para adicionar a esse problema, su -
(mas não su
) também não possui ENV
e, portanto, todo o material /etc/shrc
. Então talvez isso não seja apenas sudo
problema, afinal? Bash manpage não é específico sobre isso, eu acho - ele simplesmente diz "Quando invocado como um shell interativo com o nome sh, o bash procura por variável ENV ..." -Bem, eu faço invocá-lo como shell interativo, não é? Por que não há ENV no meu ambiente (testado com env
)
Eu não entendo como preservar o POSIXness de tudo e ao mesmo tempo não introduzir fraqueza de segurança ao fazer sudo
preservar um ou mais env. variáveis. Pelo menos, deve preservar ENV
, não?
Espero estar esclarecendo aqui.