Ich versuche die Systemadministration unter Ubuntu zu verstehen. Als Beispiel erstelle ich einen Dummy-Benutzer mit
sudo useradd -d /home/linda linda
und passwd
um das Passwort zu erstellen. Ich überprüfe, ob ein Eintrag mit vorgenommen wurdecat /etc/passwd
linda:x:1004:1004::/home/linda:/bin/sh
Wenn su - linda
ich jedoch bekomme, bekomme ich
No directory, logging in with HOME=/
In der Tat wurde kein Basisverzeichnis erstellt. Was vermisse ich?
Vielen Dank.
command-line
bash
users
home-directory
tchakravarty
quelle
quelle
adduser
aber trotzdem das erstellte Homeverzeichnis verwendet , das nur eine Datei enthältexamples.desktop
und sonst nichts. Wie kann ich Ubuntu dazu bringen, die Standardordner Desktop, Downloads usw. zu erstellen? (Ich bin über ssh angemeldet)adduser
erstellt das Verzeichnis auch nicht, wenn jemand CREATE_HOME in /etc/login.defs auf "no" geändert hat. Sie können dies mit der-m
Flagge überschreiben .Sie können dies einfach beheben, indem Sie das Ausgangsverzeichnis erstellen.
Versuchen Sie erneut, sich anzumelden. Dies sollte funktionieren.
quelle
Gemäß mit
man useradd
,-d /home/linda
Option wird das Verzeichnis nicht erstellen/home/linda
, wenn diese fehlt. Sie müssen es also manuell erstellen. Führen Sie dazu die folgenden Befehle im Terminal aus:Siehe auch: So legen Sie den Benutzer-Basisordner nach der Kontoerstellung an
quelle
Überprüfen
/etc/defaults/useradd
Sie, ob Sie die Standardeinstellungen ändern möchten. Verwenden:useradd -m -d /home/joe -s /bin/bash
.quelle
-m, --create-home Create the user's home directory if it does not exist. The files and directories contained in the skeleton directory (which can be defined with the -k option) will be copied to the home directory. useradd will create the home directory unless CREATE_HOME in /etc/login.defs is set to no.
Markierung : @astrojuanluSie können es auch so ändern
/etc/pam.d/common-session
, dass das Basisverzeichnis eines Benutzers beim ersten Anmelden erstellt wird. Fügen Sie der Datei die folgende Zeile hinzu.Dies ist besonders nützlich, wenn sich Ihr System in einem Netzwerk befindet, in dem die Benutzer außerhalb Ihres Computers verwaltet werden, beispielsweise über LDAP.
quelle
Verwenden Sie
-m
anstelle von-d
, damit das Verzeichnis für Sie erstellt wird:sudo useradd -m linda
Wenn Sie
linda
ein normaler Benutzer sind, möchten Sie ihn möglicherweise auch/bin/bash
als Standardbenutzer verwendenshell
:sudo useradd -m linda -s /bin/bash
quelle
Fügen Sie den folgenden Eintrag hinzu
/etc/login.defs
und speichern Sie:Versuchen Sie nun, Benutzerkonten zu erstellen. Es wird das Home-Verzeichnis erstellt.
quelle
Verwenden Sie
adduser
.useradd
Sie müssen alle Optionen selbst hinzufügen. Einschließlich Berechtigungen und einige andere Dinge.adduser
Tut dies basierend auf vernünftigen Standardeinstellungen (und fügt auch das Heimatverzeichnis von selbst hinzu).Wenn Sie adduser verwenden müssen, benötigen Sie wahrscheinlich die Option -b zusammen mit der Option -d!
quelle
Wenn
/home/linda
nicht vorhanden ist, bevor Sie Linda als Benutzer hinzufügen, müssen Sie auch hinzufügen--create-home
.quelle
Der wahrscheinlichste Grund , warum Sie nicht das Home - Verzeichnis erstellt haben, weil man nicht das hat
CREATE_HOME yes
in/etc/login.defs
.Sie können dies beheben, indem Sie den Vorschlägen von @OmPS oder @Radu Rădeanu folgen.
Aber so viele Möglichkeiten, dieses Problem in Zukunft mit einem der folgenden Befehle zu lösen:
Ergebnis von
sudo adduser linda
Die Standardeinstellungen für adduser werden ausgewählt,
/etc/adduser.conf
wenn die--home
Option nicht angegeben ist. Beachten Sie, dass auch der/etc/skel
Inhalt kopiert wird .Verwenden Sie adduser mit
--home
Entspricht der vorherigen Option, mit der Ausnahme, dass Sie dies wünschen, wenn sich das Ausgangsverzeichnis des Benutzers von dem von Ihnen zugewiesenen Benutzernamen unterscheidet.
Geben Sie das zu
useradd
befehlende Basisverzeichnis an :Verwenden Sie login.defs: Ändern
/etc/login.defs
und fügen Sie die folgende Zeile hinzu, bevor Sie dies tunsudo useradd
:Hinweis: Wenn Sie dies tun
man login.defs
, wird derzeit angezeigtEin Großteil der Funktionen, die früher von der Shadow Password Suite bereitgestellt wurden, werden jetzt von PAM übernommen. Daher wird /etc/login.defs nicht mehr von passwd (1) oder weniger von login (1) und su (1) verwendet. Bitte beachten Sie stattdessen die entsprechenden PAM-Konfigurationsdateien.
Verwenden Sie das PAM-Modul pam_mkhomedir: Fügen Sie ab
man pam_mkhomedir
Seite die folgende Zeile hinzu zu/etc/pam.d/login
:quelle