¿Cómo puedo hacer que la experiencia de SSH para un usuario sea la misma que para otro usuario

He creado un nuevo server Ubuntu. Cuando SSH como raíz, veo:

[email protected]: 

Creé un usuario. Cuando SSH en como el nuevo usuario, veo:

 $ 

Cuando presiono la tecla de flecha hacia arriba como root, veo el último command que ingresé. Cuando presiono la tecla de flecha hacia arriba como el nuevo usuario, veo:

 $^[[A 

Eliminar funciona como se esperaba como root. Como el nuevo usuario, la key de borrado inserta:

 ^[[3~ 

LS proporciona resultados codificados en color para raíz y sin color para el nuevo usuario. Otras pequeñas molestias existen también.

Supongo que hay un file de configuration en algún lugar de root que establece todas estas cosas. ¿Cómo puedo aplicar estas sutilezas de la interfaz de usuario al nuevo usuario que he creado también?

Tu nuevo usuario no tiene el mismo shell que tu usuario root.

Como root, abra /etc/passwd

Encuentre su línea de usuario raíz. Estará cerca de la parte superior y se verá así:

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

La parte / bin / bash es importante.

Ahora encuentre su nuevo usuario. Es probable que tengan /bin/sh en el mismo lugar que root tiene /bin/bash .

Reemplace /bin/sh con /bin/bash y vuelva a iniciar session como su nuevo usuario. Eso debería resolverlo.

Para que el shell /bin/bash pnetworkingeterminado /bin/bash para todos los usuarios, hágalo como root:

useradd -D -s /bin/bash

Puede comprobar que se ha establecido mediante el uso de useradd -D y observando el valor de la SHELL= line .

Para garantizar una experiencia de usuario similar para todos, debe realizar dos pasos:

  1. Archivos de esqueleto / perfil
    • Edite o reemplace los files de esqueleto de shell (/ etc / skel) con los que desea que los usuarios nuevos obtengan
    • Copie manualmente los files de esqueleto para los usuarios que ya ha agregado. Asegúrese de que chown los files para el usuario para que puedan hacer cambios por sí mismos!
    • Edite / etc / default / useradd para asegurarse de que cada nuevo usuario utilice el shell que desea que utilicen
  2. Alterar el shell utilizado por los usuarios actuales. Hay dos methods:
    • El recomendado: nombre de chsh -s /path/to/shell username . Cat / etc / shells para ver cuál es su sistema
    • El también recomendado: usermod -s /path/to/shell username
    • El absolutamente no es recomendable: vipw . Está editando la database de usuario directamente de esta manera. Elimina un personaje en el lugar equivocado y te has encerrado. Usted está advertido.

Un consejo relevante con respecto a vipw – muchas personas no saben cómo usar vi. En lugar de aprender sólo para el uso de vipw puede exportar un editor diferente en el entorno antes de lanzar vipw. Ejemplo:

 # export EDITOR=nano # vipw 

Esto lanzará entonces el envoltorio vipw vía nano

para useradd usted no quiere hacerlo cada vez que usted crea un nuevo usuario que usted puede hacer "

edite el file / etc / default / useradd skeleton (no olvide hacer una copy de security).

Edite la variable SHELL a ser / bin / bash en lugar de / bin / sh.

Ahora cada vez que use useradd para agregar un nuevo usuario bash es automáticamente su shell por defecto. "Si quieres cambiar el shell de los usuarios ya existentes tienes que editar el file / etc / passwd (por favor asegúrate de tener una copy de security de él).