Anmeldung bei neu erstelltem Benutzerkonto nicht möglich


25

Wenn ich versuche, ein Konto auf mein neu erstelltes Konto umzustellen, wird ein schwarzer Bildschirm angezeigt, und ich kehre nach Eingabe des richtigen Kennworts zum Hauptanmeldebildschirm zurück.

Beim Einloggen in mein bisheriges Konto erhalte ich:

"System Program Problem Detected"

Details:

Executable path /usr/bin/Xorg

Package: xserver-xorg-core 2:1.11.4-0ubuntu10.1

Details: Crash
... (tons more, but no way to copy paste or save)

Wenn ich versuche, su

su -l penner

Ich bekomme:

No directory, logging in with HOME=/

Ich habe das Home-Verzeichnis manuell erstellt und dieser Fehler verschwindet, aber immer noch kein Glück mit dem Login. Scheint, dass bei der Benutzererstellung etwas schief gelaufen ist? Wie kann ich das korrigieren?


Wie haben Sie das Benutzerkonto erstellt? Haben Sie es von der GUI oder von der Kommandozeile aus gemacht? Wenn Sie dies über die Befehlszeile tun, müssen Sie sich bewusst sein, dass adduser und useradd die Dinge sehr unterschiedlich machen. Außerdem scheinen die Dateien aus / etc / skel nicht kopiert worden zu sein. Könnten Sie bitte ls -al in Ihrem Heimatverzeichnis und im Verzeichnis des neuen Benutzers angeben, damit wir sehen können, was los ist?
SuperMatt

Antworten:


31

Wenn Sie das Benutzerkonto mit erstellt haben useradd, müssen Sie alles manuell einrichten. Aus diesem Grund wird beim Erstellen von Benutzerkonten über die Befehlszeile empfohlen, adduserstattdessen Ubuntu (und Debian sowie andere Debian-basierte Systeme) zu verwenden. Möglicherweise möchten Sie den Benutzer nur mit userdeloder entfernen deluserund mit neu erstellen adduser. Andernfalls...

Reparieren des Heimatverzeichnisses

Wenn Sie das Benutzerkonto behalten und das Problem beheben möchten, müssen Sie Folgendes beachten:

  • Der Name des Basisverzeichnisses, für das das Benutzerkonto tatsächlich konfiguriert ist
  • Der Name des Verzeichnisses, das Sie tatsächlich erstellt haben

Diese müssen genau gleich sein. Die Fehlermeldung, die Sie erhalten, su -l pennerbesagt, dass sie nicht identisch sind.

Führen Sie den folgenden Befehl aus, um das Basisverzeichnis zu überprüfen, für das das Benutzerkonto tatsächlich konfiguriert ist (siehe man 5 passwdund man grepfür weitere Informationen):

grep penner /etc/passwd

Sie sollten eine Zeile wie diese sehen:

penner:x:1000:1000:Eliah Kagan,,,:/home/penner:/bin/bash

Das heißt, das :sechstgetrennte Feld (nach dem fünften :) enthält das Ausgangsverzeichnis . Wenn nicht /home/penner, sollte es sein. Wenn das von Ihnen für den Benutzer erstellte Verzeichnis nicht vorhanden ist /home/penner, sollte dies auch der Fall sein. Wenn die beiden Verzeichnisse identisch sind, aber keines der beiden /home/penner, dann könnte das theoretisch funktionieren, aber Sie sollten sie beide /home/pennererstellen, da viele Programme davon ausgehen, dass alle privaten rootVerzeichnisse von Nichtbenutzern identisch sind ./home/username

Sie können das Ausgangsverzeichnis in ändern penner, /home/pennerindem Sie diesen Befehl ausführen:

sudo usermod -d /home/penner penner

Sicherstellen, dass es sich um ein Verzeichnis handelt und der Benutzer Zugriff hat

Wenn die Namen beide sind (oder nur einmal) /home/penner, sollten Sie auch sicherstellen, dass der Benutzer Zugriff auf sein eigenes Basisverzeichnis hat. Lauf:

ls -ld /home/penner

Sie sollten etwas sehen, das so aussieht (obwohl Datum und Uhrzeit unterschiedlich sein werden):

drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner

Wenn Sie stattdessen drwxr-xr-xetwas haben, das -eher mit als beginnt d, haben Sie eher eine Datei als ein Verzeichnis erstellt. Löschen Sie die Datei und legen Sie stattdessen dort ein Verzeichnis an.

Wenn Sie anstelle des ersten penneretwas anderes haben, besitzt der Benutzer sein Basisverzeichnis nicht. Machen Sie ihn zu seinem Eigentümer:

sudo chown penner /home/penner

Wenn drwxr-xr-xin den nächsten drei Zeichen nach dem dkeine Bindestriche angezeigt werden , hat der Benutzer dort keinen vollständigen Zugriff. Beheben Sie das wie folgt:

sudo chmod u+rwx /home/penner

( In pennerder Lage , diesen Befehl ausgeführt wird, wenn sie ihr Heimatverzeichnis besitzen, so dass , wenn Sie möchten, können Sie dies ausgeführt werden: sudo -u penner u+rwx /home/penner)

Sicherstellen, dass andere Benutzer keinen umfassenden Schreibzugriff haben

Wenn statt drwxr-xr-x, es gibt ws statt -s in den letzten sechs Buchstaben, dann neben Benutzer pennerSchreibzugriff haben , kann pennerHome - Verzeichnis ist. Dies ist gefährlich (es sei denn, Sie wissen wirklich , was Sie tun und möchten, dass es so ist und Sie die Dinge so eingerichtet haben, dass es kein Problem darstellt). Etwas reparieren:

sudo chmod -R go-w /home/penner

Andere Standardeinstellungen

Es gibt einige andere Änderungen, die Sie möglicherweise vornehmen möchten. Standardmäßig in Ubuntu (wenn Sie ein Benutzerkonto mit adduseroder mit einem grafischen Tool erstellen , was Sie nicht getan haben):

  1. Basisverzeichnisse haben Lese- und Schreibberechtigungen für alle Benutzer, nicht nur für den Benutzer, dem sie gehören. Benutzer können dies entweder für das gesamte Basisverzeichnis oder für alle darin enthaltenen Dateien und Unterverzeichnisse ändern. Aber wenn Sie diesen Standard wollen, und Sie haben nicht die zweite und die dritte rund xin drwxr-xr-xlaufen:

    sudo chmod 755 /home/penner
    

    ( In pennerder Lage , diesen Befehl ausgeführt wird, wenn sie ihr Heimatverzeichnis besitzen, so dass , wenn Sie möchten, können Sie dies ausgeführt werden: sudo -u penner chmod 755 /home/penner)

  2. Jeder Benutzer hat eine eigene Gruppe mit demselben Namen wie der Benutzer. Dies ist die primäre Gruppe des Benutzers. Ihr Home-Verzeichnis gehört dieser Gruppe. Das ist die Bedeutung der Sekunde pennerin drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner. Es ist in Ordnung, mit dieser Standardeinstellung zu brechen, wenn Sie wissen, was Sie tun . Aber wenn es nicht Ihre Absicht ist, die Dinge anders zu machen, sollten Sie sich vergewissernpenner dies so eingerichtet ist, da einige mögliche primäre Gruppenidentitäten für einen Benutzer oder Gruppenbesitzer im Basisverzeichnis des Benutzers zu Sicherheitsproblemen führen können.

    Rennen groups penner. ( man groupsWeitere Informationen finden Sie unter.) Folgendes sollte angezeigt werden:

    penner : penner adm dialout cdrom plugdev lpadmin sambashare
    

    Mach dir keine Sorgen, wenn es nicht ganz so ist. Darauf komme ich gleich zurück. Schauen Sie sich stattdessen das erste Wort nach dem an :. Das ist der Name der primären Gruppe des Benutzers. Angenommen, Sie möchten penner, dass es so ist, stellen Sie sicher, dass es so ist. Wenn nicht, ändern Sie es:

    sudo usermod -g penner penner
    

    Wenn Sie eine Fehlermeldung erhalten, dass die Gruppe pennernicht existiert, müssen Sie sie mit diesem Befehl erstellen (und dann den obigen Befehl erneut ausführen):

    sudo addgroup penner
    
    • Siehe man addgroupfür weitere Informationen. (Wenn Sie möchten, können Sie alternativ den groupaddBefehl zum Erstellen von Gruppen verwenden.)
  3. Wenn Sie gelaufen sind groups penner, haben Sie möglicherweise eine Liste von Gruppen erhalten, die erheblich kürzer ist als meine penner : penner adm dialout cdrom plugdev lpadmin sambashare. Für Desktop - Anwender, die adm, dialout, cdrom, plugdev, lpadmin, und sambasharebieten Fähigkeiten , die Desktop - Benutzer sollten in der Regel haben. Sofern Sie keinen Grund haben, etwas anderes zu tun, pennersollten Sie sich daher in diesen Gruppen befinden. Dies sind jedoch keine primären Gruppen, weshalb sie unterschiedlich festgelegt sind. Angenommen, Sie pennerbefinden sich in keiner dieser Gruppen und möchten pennersich in allen befinden, führen Sie den folgenden Befehl aus:

    sudo usermod -a -G adm,dialout,plugdev,lpadmin,sambashare penner
    

    Falls Sie interessiert sind, haben alle diese Gruppen folgende Bedeutung:

    (Quelle: Privilegien , im Ubuntu-Dokumentations-Wiki.)

Den Benutzer zum Administrator machen

Wenn Sie kein pennerAdministrator sein möchten , müssen Sie wahrscheinlich nichts weiter tun. Sie können überprüfen, ob pennerein Administrator mit groups penner. Wenn weder adminnoch sudoaufgeführt ist, dann pennerist kein Administrator.

Wenn Sie pennerAdministrator werden möchten , fügen Sie pennereine der vorhandenen Gruppen hinzu. (Sie können auch pennerzu beiden hinzufügen , wenn beide vorhanden sind.) Sie können dies erreichen, indem Sie diese beiden Befehle separat ausführen. Wenn einer der beiden erfolgreich ist, haben Sie pennereinen Administrator eingerichtet:

sudo usermod -a -G admin penner
sudo usermod -a -G sudo penner
  • Der Grund, warum es zwei Gruppen gibt, ist, dass sich Administratoren vor Ubuntu 12.04 LTS in der adminGruppe befanden . Ab Ubuntu 12.04 LTS sind Administratoren in der sudoGruppe. Wenn Ihr 12.04 LTS-System jedoch von einer früheren Version aktualisiert wurde (und dies sollte für spätere Ubuntu-Versionen gelten, z. B. 12.10, die von Ubuntu 11.10 oder früher aktualisiert wurden), sind Administratoren aus Gründen der Abwärtskompatibilität Mitglieder beider Versionen sudound admin. Wenn eine dieser Gruppen keine administrativen Fähigkeiten besitzt, ist sie einfach nicht vorhanden. Das Ausführen der beiden oben genannten Befehle (getrennt, nicht als sudo usermod -a -G admin,sudo penner) ist im Allgemeinen eine sichere und effektive Möglichkeit, pennereinen Administrator zu erstellen .

Vielen Dank! So etwas wie adduser ist nett, aber ich möchte wissen, wie man Dinge auch manuell macht. Eine sehr gründliche Antwort! Ich weiß das wirklich zu schätzen.
Penner

sudo chmod u+a /home/pennergibt einen Fehler auf Ubuntu 16.04 (Xenial). Ist sudo chmod u+rw /home/pennerein richtiger Ersatz?
Nickolai Leschov

@NickolaiLeschov Tut mir leid - und vielen Dank für den Hinweis auf den Fehler! Ich habe den Befehl behoben.
Eliah Kagan

das ist nur doof, warum dann nicht entfernen useradd? Halten Sie zufälligen gebrochenen Code
Bindestrich

1
@dashesy Danke - Mir war nicht bewusst, dass die Verwendung useraddunter Ubuntu Probleme verursacht, die auf anderen Systemen nicht auftreten. Auf meinem 16.04-System /etc/default/useraddhat (als einzige unkommentierte Zeile) SHELL=/bin/shund useradd (8) scheint zu sagen, dass der SHELLWert dort verwendet wird, wenn das -s/ --shellflag nicht angegeben ist, aber auf meinem 16.04-System passiert das nicht. Ich habe zu Unrecht so voreilig gesagt, dass Ubuntu useraddnicht kaputt ist. Jetzt bin ich mir nicht so sicher. Vielleicht gibt es einen guten Grund für diesen Unterschied zwischen Fedora und Debian (und Ubuntu) ... aber ich habe meinen Kommentar gelöscht, um die Leute nicht irrezuführen.
Eliah Kagan

0

Dies geschieht meistens, wenn Sie den Benutzer erstellen, ohne ein Basisverzeichnis für den Benutzer zu erstellen. Dies kann durch Verwendung dieses Befehls beim Erstellen eines Benutzers behoben werden

useradd -m the_username

Mit dem Flag -m wird das Basisverzeichnis für den Benutzer erstellt. Prüfen Sie nach dem Anlegen des Benutzers, ob das Home-Verzeichnis für diesen Benutzer existiert

ls /home

Wenn Sie sehen, dass der Benutzername dort aufgeführt ist, müssen Sie diesem Benutzer als Letztes ein Kennwort zuweisen

passwd the_username

Sie können sich jetzt mit diesem Benutzernamen und Passwort anmelden


-1

Strg + Alt + F1 und dort einloggen und ausführen

sudo chown -R $ USER: $ USER $ HOME

Drücken Sie dann Strg + Alt + F7 und versuchen Sie sich anzumelden

Es wird klappen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.