Resultados diferentes para o ls ao acessar o Ubuntu via SSH de clientes diferentes (Windows-PuTTy, Mac-Terminal)

15

Considere a seguinte estrutura de diretórios, impressa na tela usando ls -l "$dir" ( $dir é uma variável bash para alguma pasta no mesmo servidor, alguns níveis acima), em um servidor Ubuntu remoto (mais precisamente, Ubuntu 16.04.4 LTS (GNU / Linux 4.4.0-116-genérico x86_64)):

-rw-r--r-- 1 user group     12 Apr  2 12:34 FILE1
-rwxr--r-- 1 user group    287 Apr 23  2017 File_
-rw-r--r-- 1 user group      0 Apr 21  2017 file_1
-rw-r--r-- 1 user group    272 Apr  3 22:16 myFile
-rw-r--r-- 1 user group  47633 Apr 11 14:01 myFile.txt
-rw-r--r-- 1 user group  37030 Apr 11 14:16 myfile1
-rw-r--r-- 1 user group      0 Apr 11 21:23 nothing_here
-rw-r--r-- 1 user group      2 Apr 22  2017 small_file
-rwxr-x--- 1 user group 262529 Apr  8 15:31 story

Isto vem de um MacBook, e usa o terminal embutido e a instalação pronta para uso de ssh (OS X Versão 10.13.3, como o terminal me diz).

Considere, em comparação, o mesmo servidor acessado a partir de uma máquina Windows executando o PuTTy release 0.70:

-rwxr--r-- 1 user group    287 Apr 23  2017 File_
-rw-r--r-- 1 user group      0 Apr 21  2017 file_1
-rw-r--r-- 1 user group     12 Apr  2 12:34 FILE1
-rw-r--r-- 1 user group    272 Apr  3 22:16 myFile
-rw-r--r-- 1 user group  37030 Apr 11 14:16 myfile1
-rw-r--r-- 1 user group  47633 Apr 11 14:01 myFile.txt
-rw-r--r-- 1 user group      0 Apr 11 21:23 nothing_here
-rw-r--r-- 1 user group      2 Apr 22  2017 small_file
-rwxr-x--- 1 user group 262529 Apr  8 15:31 story

Observe a classificação diferente dos primeiros 6 arquivos em cada imagem.

Considerando que os comandos estão sendo executados no servidor, e não nos computadores clientes, não se esperaria nenhuma diferença entre as duas saídas. Qual é a razão pela qual eles não são idênticos, então?

Editar 1: Conforme mencionado nos comentários, verifiquei e o terminal do Mac está definido como xterm-256color , enquanto o Windows está definido como xterm . Uma rápida mudança na configuração do Mac para xterm não teve efeito.

Editar 2: Conforme mencionado nos comentários, tentei executar whereis ls , que fornece o local razoável que você espera encontrar ls - ou seja, bin/ls .

Editar 3: Livram-se das imagens do terminal, trocaram-nas por um código formatado corretamente de acordo com este meta post .

Editar 4: Adicionadas aspas em torno de "$dir" para evitar problemas com espaços.

    
por t0mgs 16.04.2018 / 22:51

2 respostas

4

O que eventualmente funcionou foi a subseção "Parar Encaminhamento de Local do Cliente" em esta resposta . Basta comentar a linha SendEnv LANG LC_* em Host no arquivo local /etc/ssh/ssh_config . Algumas explicações sobre o que ele faz podem ser encontradas aqui .

    
por t0mgs 17.04.2018 / 07:45
30

A ordem de classificação é definida pelas variáveis de código de idioma LC_ALL , LC_COLLATE e LANG (nesta ordem, sendo a primeira a mais strong). Estas são também algumas das poucas variáveis que normalmente podem ser configuradas pelo cliente ssh. Verifique e compare essas variáveis. Você pode querer defini-los como um valor bem definido no servidor (por exemplo, em .bash_profile ) ou certificar-se de que seus clientes ssh definam o mesmo valor consistente.

    
por egmont 16.04.2018 / 23:40