%20n%C3%A3o%20inicia%20no%20caminho%20%24%20HOME%20correto.png)
eu instaleiCygWinv1.7.28.
O problema foi explicado rapidamente: Basicamente, ao iniciar um shell CygWin via login remoto, o$HOMEnão está onde deveria, com todas as consequências (ruins) derivadas disso. Os consoles locais funcionam bem.
E agora para odetalhes:
Se estiver na GUI (Windows XP), eu faço:
c:\CygWin\bin\bash.exe --login -i
ou (da mesma forma, praticamente):
c:\CygWin\Cygwin.bat
Eu começo pelo correto$HOMEcom todos os meus arquivos de configuração:
LuisRivas@portatilacer ~
$ pwd
/home/LuisRivas
LuisRivas@portatilacer ~
$ ls .* -la
-rw------- 1 LuisRivas Ninguno 108 mar 3 14:34 .bash_history
-rwxr-xr-x 1 LuisRivas Ninguno 1494 mar 3 03:00 .bash_profile
-rwxr-xr-x 1 LuisRivas Ninguno 6127 mar 3 14:28 .bashrc
-rwxr-xr-x 1 LuisRivas Ninguno 1919 mar 3 03:00 .inputrc
-rwxr-xr-x 1 LuisRivas Ninguno 1236 mar 3 03:00 .profile
$ echo $HOME
/home/LuisRivas
Mas se eu logar via SSH (Servidor Bitvise SSHv6 instalado no Windows XP SP3) e repito o processo (mesmo usuário):
c:\CygWin\bin\bash.exe --login -i
Agora oBash Shellnão começa onde deveria:
LuisRivas@portatilacer ~
$ echo $HOME
/cygdrive/c/Documents and Settings/LuisRivas
LuisRivas@portatilacer ~
$ pwd
/cygdrive/c/Documents and Settings/LuisRivas
LuisRivas@portatilacer ~
$ ls .* -la
-rw-------+ 1 LuisRivas Ninguno 197 mar 3 14:36 .bash_history
.:
total 1211
drwxrwx---+ 1 Administradores SYSTEM 0 mar 3 14:30 .
drwxrwxr-x+ 1 Administradores SYSTEM 0 mar 1 04:06 ..
-rw-------+ 1 LuisRivas Ninguno 197 mar 3 14:36 .bash_history
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:12 Configuración local
drwx------+ 1 LuisRivas Ninguno 0 dic 25 15:41 Cookies
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:17 Datos de programa
drwx------+ 1 LuisRivas Ninguno 0 dic 25 13:56 Entorno de red
drwx------+ 1 LuisRivas Ninguno 0 dic 25 13:56 Escritorio
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:12 Favoritos
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:02 IETldCache
drwx------+ 1 LuisRivas Ninguno 0 dic 25 13:56 Impresoras
drwx------+ 1 LuisRivas Ninguno 0 dic 25 13:56 Menú Inicio
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:12 Mis documentos
-rwx------+ 1 LuisRivas Ninguno 786432 mar 3 14:17 NTUSER.DAT
-rwx------+ 1 LuisRivas Ninguno 1024 mar 3 14:34 NTUSER.DAT.LOG
-rwxrwx---+ 1 Administradores SYSTEM 192 mar 3 14:03 ntuser.ini
drwx------+ 1 LuisRivas Ninguno 0 dic 25 15:33 Plantillas
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:12 Reciente
drwx------+ 1 LuisRivas Ninguno 0 mar 3 14:12 SendTo
Aquilo é:CygWininiciei o shell no diretório inicial do Windows, então não tenho minhas personalizações (.bashrc,.bash_profile... etc), como apelidos.
Talvez esse comportamento estranho seja causado apenas por algum tipo de variável de ambiente ausente (que existe na GUI, mas não no console remoto), mas não consegui localizá-la.
Como eu poderia fazer para que meu console remoto iniciasse oBash Shellincluído emCygWinonde deveria?
- EDIT: aqui alguns dados extras mediante solicitação:
No Bash Shell local:
LuisRivas@portatilacer ~
$ id
uid=1004(LuisRivas) gid=513(Ninguno) grupos=513(Ninguno),0(root),544(Administradores),545(Usuarios)
No Bash Shell remoto (nada difere):
LuisRivas@portatilacer ~
$ id
uid=1004(LuisRivas) gid=513(Ninguno) grupos=513(Ninguno),0(root),544(Administradores),545(Usuarios)
E este é o conteúdo de /etc/passwd (mostrado apenas a linha do usuário "LuisRivas"):
LuisRivas@portatilacer ~
$ cat /etc/passwd
[Lines not needed (I think)]
LuisRivas:unused:1004:513:U-PORTATILACER\LuisRivas,S-1-5-21-789336058-1957994488-1417001333-1004:/home/LuisRivas:/bin/bash
[Lines not needed (I think)]
EDIT 2: Numa primeira escrita me enganei: o arquivo.bashrcno caminho inicial (onde quer que este caminho esteja) é lido como OK porCygWinao iniciar seu shell. Essa informação foi excluída agora.
EDIT 3: Meus testes foram feitos apenas em logins remotos SSH, não em Telnet. Então surgiu o problema: justamente de algum comportamento do Bitvise SSH Server (leia a resposta abaixo).
Responder1
O problema em poucas palavras:Servidor Bitvise SSH(Windows) adiciona uma variável de ambiente (supostamente ilógica; parece não ser necessária)%LAR%isso é igual a%HOMEPATH%.
A solução: a possibilidade de gerenciar as variáveis de ambiente que o Bitvise SSH Server adiciona a cada cliente SSH (Massa, linha de comando clássica do GNUSSH... etc.). Pelo que pesquisei, o programa não possui essa funcionalidade. Vou continuar pesquisando.
Soluções alternativas:
Ligar paraBash Shellatravés de um.cmdarquivo que primeiro exclui o%LAR%variável de ambiente. Algo como:
@ set HOME=
@ c:\CygWin\bin\bash.exe --login -iIniciando oBash Shellalterando o$HOMEvalor e reiniciá-lo:
c:\CygWin\bin\bash.exe --login -i -c "export HOME=/home/%USERNAME%;cd /home/%USERNAME%; exec /bin/bash"
Apenas copiando todos os arquivos de configuração dec:\CygWin\home\%NOME DE USUÁRIO%parac:\Usuário\%NOME DE USUÁRIO%. Parece funcionar bem (alguém sabe de algum problema com esse método?).
Obrigado a @user1147688 (acima) pelas ideias e link para solução de umpergunta semelhante.
Responder2
Para mim, o problema não foi devido a uma variável de ambiente do Windows% HOME% que consegui excluir. Nenhuma variável %HOME% foi listada na caixa de diálogo Variáveis Ambientais.
Em vez disso, consegui resolver o problema no Bitvise desmarcando “Permitir variáveis ambientais” nas configurações avançadas. Também apaguei "%HOME%" do campoDiretório inicial do shell do terminal, mas isso não foi suficiente por si só.