Instalei o Ubuntu Linux com WSL no meu PC com Windows 11. Criei um nome de usuário durante a instalação, perdiem
. Quando tudo estava funcionando, fui cd
para ~
, e o diretório em que acabei foi /home/ls
. Não sei bem por que isso acontece; pensei que seria meu nome de usuário. Também é estranho que seja, na verdade, um comando do Linux — meio confuso.
Isso não é um problema, mas alguém sabe por que ls
é estabelecido como o diretório inicial e não meu nome de usuário?
Saída de id
:
uid=1000(ls) gid=1000(ls) groups=1000(ls),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),100(users),107(netdev)
Saída de grep /home/ls /etc/passwd
:
ls:x:1000:1000:,,,:/home/ls:/bin/bash
Se
cd ~
colocar você em/home/ls
, então, nessa sessão, a$HOME
variável de ambiente foi definida/home/ls
como . Isso pode ser causado pelo diretório inicial estar definido como/home/ls
nas informações da conta de usuário/etc/passwd
(ou qualquer mecanismo de plug-in usado para informações da conta de usuário), ou por algo que alterou a variável de ambiente para um valor incorreto, seja apenas para aquela sessão específica ou para todas as sessões de login.Se você não tiver acesso de gravação
/home/ls
e o/home/perdiem
diretório existir e for gravável para seu usuário comum, então eu suspeitaria de um erro em um script de login personalizado ou um comando digitado incorretamente fazendo com que a$HOME
variável de ambiente fosse reatribuída.Se
/home/perdiem
não existir, mas/home/ls
existir, e este último tiver a propriedade e as permissões corretas para servir como seu diretório inicial, isso sugeriria um erro no(s) script(s) responsável(is) pela criação da conta de usuário. Nesse caso, a/etc/passwd
linha referente à sua conta de usuário também especificaria o diretório inicial como/home/ls
.Você pode verificar isso usando
getent passwd perdiem
e observando o 6º campo separado por dois pontos na linha de saída.Uma saída como
significaria que o diretório inicial está especificado corretamente nas informações da conta do usuário e, portanto, algo deve ter alterado a
$HOME
variável depois que a sessão de login foi iniciada.Um resultado como
significaria que o erro está nas informações da conta do usuário, sugerindo um erro no momento da criação da conta do usuário.
O Debian/Ubuntu parece fornecer
/usr/sbin/adduser
um script wrapper para criação de usuários e o trata/usr/sbin/useradd
como uma ferramenta de baixo nível. Erros na personalização deste script (seja por você ou pelo empacotador da distribuição WSL) podem fazer com que o script chame ouseradd
comando de baixo nível com parâmetros incorretos.Mas se esta foi a conta de usuário inicial criada durante a instalação do ambiente WSL, então a conta de usuário pode ter sido criada diretamente por qualquer script usado no processo de instalação, o que pode ou não envolver o
useradd
comando ou oadduser
script.Em um sistema Linux genérico, é possível sair do X-11 (ou Wayland), sair do USER e, em um console de comando clássico, sem o X-11 ou a placa de vídeo em execução, efetuar login como root. Certifique-se de que você não esteja logado como USER em nenhum tty e de que nenhum shell gráfico esteja em execução. Em outras palavras, nada que precise ou seja executado em USER deve estar ativo.
Em seguida, emita os seguintes comandos:
Saia como root e tente efetuar login (ainda em um console de comando) como NEW_USER para verificar se está tudo certo. Se tudo estiver correto, você pode executar "startx" (eu uso o X-11 e sempre inicio manualmente usando "startx" após efetuar login) para iniciar a interface gráfica. Talvez seja necessário reconfigurar o X-11, o gerenciador de desktop escolhido, etc.
Outra maneira de alterar seu nome de usuário e diretório é simplesmente criar um novo usuário! Você pode então copiar/mover todos os seus dados não pertencentes ao sistema do seu diretório de usuário atual para o novo diretório. Quando tudo estiver funcionando corretamente e configurado, você pode remover o usuário e o diretório antigos. Simples e sempre funciona.
Sem mais informações, não consigo determinar por que o nome de usuário foi definido como "ls". Geralmente uso Debian e sempre inicio com um console de comando, o que facilita o rastreamento de problemas — por exemplo, se o X-11 precisar ser reconfigurado, posso simplesmente fechá-lo e fazer as alterações (por exemplo, no arquivo xorg.conf) no modo console, e usar startx para reiniciar o monitor do X-11. Sem reinicializações ou gerenciadores gráficos de login. Sou muito old-school!