Pestaña Autocompletar para nuevo usuario

11

Agregué un nuevo usuario de Linux haciendo un

useradd -d /var/www/mywebsite.com -m newuser
passwd newuser

Probé la cuenta iniciando sesión en el servidor con el siguiente comando

ssh [email protected]

Después de iniciar sesión, el shell no me permite completar automáticamente la pestaña. Por ejemplo, escribiría / var / www / myweb {tab}, pero el botón de tabulación solo ingresa un espacio en el shell. Además, presionar las teclas de flecha hacia arriba y hacia abajo no me da los comandos de shell más recientes ingresados.

Todo funciona perfectamente cuando inicio sesión ssh como root. Pero no funciona cuando inicio sesión ssh como usuario nuevo.

¿Me he perdido algo?

Gracias

Juan
fuente

Respuestas:

33

Verifique qué shell 'newuser' está utilizando. Asegúrese de que sea uno que realmente admita la finalización de pestañas (como bash o zsh).

Puede determinar qué shell está utilizando el usuario con el siguiente comando

# getent passwd rodjek
rodjek:x:1001:1001:x:/home/rodjek:/bin/zsh

Puede cambiar el shell de los usuarios con el comando chsh

# chsh -s /bin/bash rodjek
rodjek
fuente
genial, eso funcionó!
John
2

En la pestaña de mi sistema, el autocompletado es agregado por:

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

en .bashrc. Bashrc no se crea para nuevos usuarios ya que no existe en / etc / skel. Cree .bashrc en / etc / skel con el código anterior y funcionará para nuevos usuarios. Luego copie el archivo al nuevo usuario que acaba de crear para que también funcione para ellos.

WheresAlice
fuente
1

¿ha verificado que su nuevo usuario tiene el mismo shell que su usuario raíz? Parece que tu usuario root ha golpeado tu algo así y tu nuevo usuario tiene un ksh o algo similar. Eche un vistazo al archivo / etc / passwd o la variable de entorno SHELL.

cristiano
fuente
1

Cuando agrega un usuario con useraddno se agrega ningún shell especial.
Puedes ver esto con el comando:cat /etc/passwd

test1:x:1004:1005:,,,:/home/test1:/bin/bash
test3:x:1007:1008::/home/test3:

Puede ver que el usuario test1tiene un shell de /bin/bashpero el usuario test3no tiene un shell agregado.

Para solucionar esto, puede cambiar el shell del usuario test3con este comando:

chsh -s /bin/bash test3

O cuando creas un nuevo usuario puedes usar la opción s:

useradd -s /bin/bash test4
RenRen
fuente
0

¿Existía la carpeta /var/www/mywebsite.com antes de crear la cuenta?

¿Puede verificar que los contenidos de / etc / skel se copien en el directorio de inicio /var/www/mywebsite.com?

¿Recibió la nueva cuenta un shell diferente que no admite autocompletar?

Zoredache
fuente