Não é possível ver aliases

1

Eu tenho meu usuário root e outro usuário testuser. Agora no .bashrc do testuser, existem alguns aliases como la para ls -a. Mas quando eu faço o login no testuser e tento executar o la, isso me dá o erro:  -sh: la: não encontrado

Mesmo quando tento encontrar o $ HOME, diz Permissão negada (?)

Isso está atrasando meu trabalho !! Socorro!

    
por cindy 02.08.2012 / 03:12

2 respostas

4

A mensagem do shell começa com -sh . Isso dá duas pistas importantes:

  • O líder - indica que esse é um shell de login. Por convenção, o programa de login (o programa onde você digita seu nome de usuário e senha, que podem ser login , gdm, sshd,…) inicia um shell com o nome do programa configurado para começar com - extra. Dessa forma, o shell sabe que é um shell de login e lê ~/.profile ou outro arquivo de inicialização de sessão.
  • O nome do shell é sh . Portanto, o shell de login do usuário é definido como /bin/sh e não como bash. O /bin/sh é um link simbólico para o bash ou outro shell, como o dash. Quando bash é invocado sob o nome sh , ele não lê seus arquivos de configuração, apenas os arquivos padrão ( ~/.profile e /etc/profile em shell de login, nada em shells não-login), para compatibilidade. Então, de qualquer forma, ~/.bashrc não é lido.

Se você invocar explicitamente o bash, ele lerá .bashrc . Você precisará passar o sinal -t para ssh para informar que ele abre um terminal, mesmo que você tenha especificado um comando.

ssh -t testuser@nameofhost bash

Você pode querer mudar o shell de login do usuário para ser bash em vez de /bin/sh . Como testuser , execute o comando

chsh -s /bin/bash

Altere o caminho para /usr/local/bin/bash ou onde quer que bash esteja localizado. Se você invocar chsh sem argumentos, você receberá um menu mostrando quais shells tem permissão para selecionar.

    
por 03.08.2012 / 02:15
-1

Você pode verificar seus arquivos / etc / bashrc e / ou / etc / profile em todo o sistema. Além disso, você pode adicionar algo assim aos arquivos:

if [ 'whoami' == "testuser" ] 
then  
   alias x='echo x' # alias list..
fi
    
por 02.08.2012 / 06:46

Tags