On 7/27/06, Tiago Saboga wrote:
1) Quando entro como root no terminal (alt-f1, ou konsole->novo rootshell) os
diretórios sbin não estão no meu path. Quando entro como usuário comum e
passo para root como su ou sux, ao contrário, os diretórios estão no lugar
certo. Imagino que seja então algo relativo a login/non-login shell, mas não
consegui entender direito na página de manual do bash quando um shell é login
e quando não é. Além disso olhei no /etc/bash.bashrc e no /etc/profile e não
há nada em nenhum dos dois, pelo que entendo, que modifique a variável PATH.
Aonde então isso é feito, já que funciona pelo su?

Alguns fatos que devem ajudar (estou supondo que você usa bash):

1) O manual do bash nem tenta explicar as situações em que ele é um
"login shell" porque isso depende de quem chama o bash.

2) O su (suponho que o sux também) alteram o PATH por conta própria,
por isso funcionou com eles.

3) É natural que os arquivos de inicialização no /etc não coloquem os
diretórios sbin no PATH, já que eles deveriam ser exclusivos do root.

4) O "login" deveria chamar um "login shell", então quando você loga
como root no console (aquele do ctrl-alt-fx), deveria abrir um "login
shell". O konsole, na configuração padrão, não abre um login shell.

5) Costuma-se definir o PATH nos "profile" da vida. Se os seus não tem
nada, sugiro colocar. No meu /etc/profile tem:
   PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games"
e no meu /root/.profile tem:
   
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
Esse último vai garantir que os sbin estejam no PATH quando você logar
no console. Já para o konsole ou "novo rootshell", eu não sei. Não uso
KDE.

--
Bruno de Oliveira Schneider
http://www.dcc.ufla.br/~bruno/

Responder a