Scheda Completamento automatico per il nuovo utente


11

Ho aggiunto un nuovo utente Linux facendo un

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

Ho testato l'account accedendo al server con il seguente comando

ssh newuser@mywebsite.com

Dopo il login, la shell non mi consente di completare automaticamente la scheda. Ad esempio, digitare / var / www / myweb {tab}, ma il pulsante tab inserisce solo uno spazio nella shell. Inoltre, premendo i tasti freccia su e giù non mi danno i comandi di shell più recenti immessi.

Tutto funziona perfettamente quando effettuo l'accesso come root. Ma non funziona quando effettuo l'accesso come nuovo utente.

Ho dimenticato qualcosa?

Grazie

Risposte:


33

Controlla quale shell 'newuser' sta usando. Assicurati che sia effettivamente quello che supporta il completamento delle schede (come bash o zsh).

Puoi determinare quale shell sta usando l'utente usando il seguente comando

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

Puoi cambiare la shell degli utenti usando il comando chsh

# chsh -s /bin/bash rodjek

fantastico, ha funzionato!
John,

2

Nella mia scheda di sistema il completamento automatico viene aggiunto da:

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

in .bashrc. Bashrc non viene creato per i nuovi utenti poiché non esiste in / etc / skel. Crea .bashrc in / etc / skel con il codice sopra riportato e funzionerà per i nuovi utenti. Quindi copia il file nel nuovo utente che hai appena creato in modo che funzioni anche per loro.


1

hai verificato che il tuo nuovo utente abbia la stessa shell del tuo utente root? Sembra che il tuo utente root abbia criticato qualcosa di simile e che il tuo nuovo utente abbia un ksh o qualcosa di simile. Dai un'occhiata al file / etc / passwd o alla variabile d'ambiente SHELL.


1

Quando aggiungi un utente con useraddnon viene aggiunta alcuna shell speciale.
Puoi vederlo con il comando:cat /etc/passwd

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

Puoi vedere che l'utente test1ha una shell di /bin/bashma l'utente test3non ha aggiunto shell.

Per risolvere questo problema puoi cambiare la shell dell'utente test3con questo comando:

chsh -s /bin/bash test3

Oppure quando crei un nuovo utente puoi usare l'opzione s:

useradd -s /bin/bash test4

0

La cartella /var/www/mywebsite.com esisteva prima di creare l'account?

Puoi controllare che i contenuti di / etc / skel vengano copiati nella home directory /var/www/mywebsite.com?

Il nuovo account ha ottenuto una shell diversa che non supporta il completamento automatico?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.