Alterar caminho padrão para quando eu SSH entrar no servidor CentOS?

12

Eu tenho um servidor web do CentOS 5.7, e eu quero mudar o lugar padrão em que eu me conecto ao conectar usando o SSH.

Atualmente, chego em /home/username e quero pousar em /home .

Eu entrei como root e adicionei PermitUserEnvironment yes a /etc/.ssh/sshd_config - e pelo que entendi isso varre a pasta ssh do usuário para um arquivo environment . O que eu não tenho certeza é exatamente o que estou adicionando a este arquivo de ambiente, já que export path=$PATH:$HOME parece não funcionar, nem aqui, nem nos meus arquivos .bashrc ou .bash_profile (o que eu entendo que não fazer diferença de qualquer maneira como uma conexão SSH é um shell não interativo?).

Obrigado antecipadamente.

    
por Ben 23.02.2012 / 11:04

2 respostas

12

Se você estiver usando o PAM para autenticação, provavelmente é o mais provável. Como root, siga para /etc/passwd .

Lá você deve ver seu nome de usuário e caminho! Mude para lá e você está em casa!

EDIT - Desculpe, ocorreu-me que talvez você não queira alterar sua pasta pessoal. Nesse caso, basta adicionar:

cd /home

Para o final do seu arquivo .bashrc !

    
por 23.02.2012 / 11:13
4

A coisa a ser lembrada é que ~/.ssh/environment é lido antes que um comando shell ou ssh seja gerado, portanto (por exemplo) nem a exportação nem o $ PATH fazem sentido. Você só pode definir variáveis de ambiente (não executar comandos gerais do shell) aqui.

Se você pegar o ambiente para um shell ssh não interativo, modifique-o, você deve obter o que deseja para comandos não interativos. Por exemplo:

$ ssh mylogin@myserver env

lhe dará o que o ssh começa no seu servidor. Se você escrever seu arquivo ~/.ssh/environment como:

PATH=/usr/local/bin

e execute novamente o acima, você deve obter "bash: env: comando não encontrado". Bom!

Agora, crie seu caminho explicitamente, com base no que era base do sshd de seu sistema (por exemplo, a primeira chamada "ssh .... env"), por exemplo (adicionando /usr/local/bin na cabeça) :

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Note também que não é útil tentar definir o CWD em ~/.ssh/rc (que é executado após ~/.ssh/environment ser lido, mas antes de seu ssh shell ou comando), pois seu shell será iniciado (por padrão) no caminho da sua casa.

    
por 08.01.2013 / 23:12