Registerkarte Autocomplete für neuen Benutzer

11

Ich habe einen neuen Linux-Benutzer hinzugefügt, indem ich a

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

Ich habe das Konto getestet, indem ich mich mit dem folgenden Befehl beim Server angemeldet habe

ssh [email protected]

Nach dem Anmelden kann ich in der Shell die automatische Vervollständigung von Registerkarten nicht ausführen. Zum Beispiel würde ich / var / www / myweb {tab} eingeben, aber die Tab-Schaltfläche gibt nur ein Leerzeichen in die Shell ein. Durch Drücken der Aufwärts- und Abwärtspfeiltasten werden nicht die zuletzt eingegebenen Shell-Befehle angezeigt.

Alles funktioniert perfekt, wenn ich mich als root anmelde. Aber es funktioniert nicht, wenn ich mich als neuer Benutzer anmelde.

Habe ich etwas verpasst?

Vielen Dank

John
quelle

Antworten:

31

Überprüfen Sie, welche Shell 'newuser' verwendet. Stellen Sie sicher, dass es tatsächlich die Tab-Vervollständigung unterstützt (wie Bash oder Zsh).

Mit dem folgenden Befehl können Sie bestimmen, welche Shell der Benutzer verwendet

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

Sie können die Benutzer-Shell mit dem Befehl chsh ändern

# chsh -s /bin/bash rodjek
rodjek
quelle
toll, das hat funktioniert!
John
2

Auf meiner Systemregisterkarte wird die automatische Vervollständigung hinzugefügt durch:

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

in .bashrc. Bashrc wird nicht für neue Benutzer erstellt, da es in / etc / skel nicht vorhanden ist. Erstellen Sie .bashrc in / etc / skel mit dem obigen Code in und es funktioniert für neue Benutzer. Kopieren Sie dann die Datei auf den neuen Benutzer, den Sie gerade erstellt haben, damit sie auch für ihn funktioniert.

WheresAlice
quelle
1

Haben Sie überprüft, ob Ihr neuer Benutzer dieselbe Shell wie Ihr Root-Benutzer hat? Es scheint, dass Ihr Root-Benutzer Ihr Ähnliches verprügelt hat und Ihr neuer Benutzer ein ksh oder ähnliches hat. Schauen Sie sich die Datei / etc / passwd oder die Umgebungsvariable SHELL an.

Christian
quelle
1

Wenn Sie einen Benutzer mit hinzufügen, useraddwird keine spezielle Shell hinzugefügt.
Sie können dies mit dem Befehl sehen:cat /etc/passwd

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

Sie können sehen, dass der Benutzer test1eine Shell von hat /bin/bash, dem Benutzer test3jedoch keine Shell hinzugefügt wurde.

Um dies zu beheben, können Sie die Shell des Benutzers test3mit diesem Befehl ändern :

chsh -s /bin/bash test3

Wenn Sie einen neuen Benutzer erstellen, können Sie die Option s verwenden:

useradd -s /bin/bash test4
RenRen
quelle
0

Gab es den Ordner /var/www/mywebsite.com, bevor Sie das Konto erstellt haben?

Können Sie überprüfen, ob der Inhalt von / etc / skel in das Ausgangsverzeichnis /var/www/mywebsite.com kopiert wird?

Hat das neue Konto eine andere Shell erhalten, die die automatische Vervollständigung nicht unterstützt?

Zoredache
quelle