Como faço para que a experiência do SSH para um usuário seja a mesma de outro usuário?

1

Eu criei um novo servidor Ubuntu. Quando eu SSH em como root, vejo:

root@server:

Eu criei um usuário. Quando eu SSH em como o novo usuário, vejo:

$

Quando pressiono a tecla de seta para cima como raiz, vejo o último comando que digitei. Quando pressiono a tecla de seta para cima como novo usuário, vejo:

$^[[A

Excluir funciona conforme o esperado como root. Como o novo usuário, a chave de exclusão é inserida:

^[[3~

O LS fornece resultados codificados por cores para raiz e nenhuma cor para o novo usuário. Outras pequenas vexações existem também.

Eu suponho que há um arquivo de configuração em algum lugar para o root que define todas essas coisas. Como posso aplicar essas sutilezas da interface do usuário ao novo usuário que criei também?

    
por Chris 22.12.2011 / 20:57

3 respostas

7

Seu novo usuário não tem o mesmo shell que seu usuário root.

Como root, abra /etc/passwd

Encontre sua linha de usuário raiz. Ele estará perto do topo e ficará assim:

root:x:0:0:root:/root:/bin/bash

A parte / bin / bash é importante.

Agora encontre seu novo usuário. Eles provavelmente têm /bin/sh no mesmo lugar que a raiz tem /bin/bash .

Substitua /bin/sh por /bin/bash e, em seguida, faça login novamente como seu novo usuário. Isso deve resolver isso.

Para tornar o shell padrão /bin/bash permanentemente para todos os usuários, faça isso como root:

useradd -D -s /bin/bash

Você pode verificar se isso foi definido usando useradd -D e observando o valor de SHELL= line .

    
por 22.12.2011 / 21:00
5

Para garantir uma experiência de usuário semelhante para todos, você precisa executar duas etapas:

  1. Arquivos de esqueleto / perfil
    • Edite ou substitua os arquivos de esqueleto do shell (/ etc / skel) por aqueles você deseja que os novos usuários acessem
    • Copie manualmente os arquivos de esqueleto dos usuários que você já adicionou. Certifique-se de chown os arquivos para o usuário para que eles possam faça mudanças para eles mesmos!
    • Edite / etc / default / useradd para garantir que todos os novos usuários usem o shell que você deseja que eles usem
  2. Alterando o shell usado por seus usuários atuais. Existem dois métodos:
    • O recomendado: chsh -s /path/to/shell username . Cat / etc / shells para ver qual o seu sistema tem
    • O também recomendado: usermod -s /path/to/shell username
    • O absolutamente NÃO recomendado: vipw . Você está editando o banco de dados do usuário diretamente dessa maneira. Exclua um personagem no lugar errado e você estará bloqueado. Você está avisado.

Uma dica relevante sobre o vipw - muitas pessoas não sabem como usar o vi. Em vez de aprender apenas para o uso do vipw, você pode exportar um editor diferente no ambiente antes de iniciar o vipw. Exemplo:

# export EDITOR=nano
# vipw

Isso iniciará o wrapper vipw via nano

    
por 22.12.2011 / 22:32
0

para useradd você não quer fazer isso toda vez que você cria um novo usuário que você pode fazer "

edite o arquivo de esqueleto / etc / default / useradd (não esqueça de fazer um backup).

Edite a variável SHELL para / bin / bash em vez de / bin / sh.

Agora, toda vez que você usa useradd para adicionar um novo usuário, o bash é automaticamente o shell padrão. " Se você quiser mudar o shell de usuários já existentes, você deve editar o arquivo / etc / passwd (por favor, certifique-se de fazer um backup dele).

    
por 22.12.2011 / 21:00

Tags