Wie mache ich das? Ich habe einen Benutzer ohne Home-Verzeichnis erstellt und möchte jetzt eines erstellen. Nicht nur ein Ordner namens new_user, ich möchte das Standard-Ausgangsverzeichnis mit all seinen Ordnern und versteckten Dateien usw.
command-line
home-directory
Jo Rijo
quelle
quelle
su new_user
: Dsudo -i -u new_user
aber es funktioniert nicht. Ich denke, wir müssen "ein X-Login simulieren" ... ich weiß nicht, wie das geht.Antworten:
Verwenden Sie Folgendes (als root oder mit sudo, wenn nicht root):
Damit dies funktioniert,
/home/username
darf der Ordner nicht existieren.Für X-bezogene Ordner (Desktop, Downloads usw.) müssen Sie sich in einer Grafikumgebung anmelden. Sie werden automatisch generiert, wenn Sie sich zum ersten Mal anmelden.
quelle
ls -l /home
. Ich stellte fest, dass das neue Verzeichnis von allen anderen Benutzern gelesen werden kann, und entfernte diese Berechtigungen mitchmod go-r-x /home/username
.Die Unterverzeichnisse (Dokumente, Downloads usw.) werden automatisch erstellt, wenn sich der Benutzer zum ersten Mal über GNOME anmeldet, sofern das Basisverzeichnis mit den richtigen Berechtigungen erstellt wurde. Hier ist eine Demonstration:
Sie können überprüfen, ob das Basisverzeichnis des Benutzers korrekt eingestellt ist, indem Sie den Eintrag in einchecken
/etc/passwd
. Standardmäßig sollte das Basisverzeichnis wie folgt eingestellt sein/home/testinguser
:Wenn das Ausgangsverzeichnis dort nicht angezeigt wird
/home/testinguser
, müssen Sie den Befehl ausführensudo usermod -d /home/testinguser testinguser
, um es zu aktualisieren. Sie sollten diesen Befehl jedoch nicht verwenden müssen, da er standardmäßig festgelegt werden sollte ( sieheuseradd
Hilfeseiten).Ich habe mich dann von meinem Konto abgemeldet und mich wieder mit angemeldet
testinguser
, und hier sind die Unterverzeichnisse, die automatisch erstellt wurden:Ich musste den Inhalt von nicht kopieren
/etc/skel
.Können Sie nach Möglichkeit die folgenden Schritte ausführen, um einen neuen Benutzer zu erstellen? Sobald Sie fertig sind, können Sie diesen neuen Benutzer durch entfernen
sudo deluser testinguser && sudo rm -r /home/testinguser
.Wenn all dies bei Ihnen nicht funktioniert hat, dann ist es vermutlich ein Fehler.
quelle
useradd
wird das Standard- Ausgangsverzeichnis für den neuen Benutzer bei Verwendung nicht automatisch auf festgelegt/home/username
. Also, zuerst musst du dir sicher sein.useradd
: "useradd verwendet das Basisverzeichnis, das durch die Variable HOME in/etc/default/useradd
oder/home
standardmäßig angegeben wird". Die Variable HOME in/etc/default/useradd
ist standardmäßig nicht definiert, daher wird useradd immer verwendet/home
. Wie auch immer, ich bearbeite meine Antwort und verschiebe das Teil, um es zu überprüfen/etc/passwd
./bin/sh
in der Benutzerzeile/etc/passwd
haben, müssen Sie eine Shell für diesen Benutzer hinzufügen, zum Beispiel die Standard-Shell mitusermod -s /bin/sh testuser
UPDATE: Die Lösung ist kaputt und funktioniert auch bei mir nicht.
Wenn Sie das Basisverzeichnis des Benutzers erstellen möchten, falls es nicht vorhanden ist, führen Sie den
useradd
Befehl mit dem-m
Flag aus. Dadurch werden alle Dateien aus dem/etc/skel
Verzeichnis kopiert .Möglicherweise müssen Sie Einstellungen für Ihr System konfigurieren. Nach der Manpage:
und zeigt weiter an:
quelle
-m
Flag auch getestet, als ich einen neuen Benutzer erstellt habe, und es hat nicht funktioniert. Es werden nur die Gerüstdateien kopiert./etc/skel
keine Unterverzeichnisse im Basisverzeichnis erstellt. Wirduseradd -m
auch beim Erstellen eines neuen Benutzers verwendet, nicht wenn der Benutzer bereits hinzugefügt wurde.Wenn Sie den neuen Benutzer mit dem
adduser
Befehl erstellt haben, müssen Sie kein Basisverzeichnis für den neuen Benutzer erstellen. Ein Ausgangsverzeichnis mit dem Namen des Benutzers im/home
Verzeichnis mit den folgenden Unterverzeichnissen: Desktop, Downloads, Dokumente, Musik, Bilder, Videos (und andere) für den neuen Benutzer wird automatisch erstellt.Wenn Sie den neuen Benutzer mit dem
useradd
Befehl erstellt haben, führen Sie die folgenden Befehle im Terminal aus:/etc/passwd
Datei als root bearbeiten (dies ist der wichtigste Schritt). Suchen Sie die Zeile mit dem Namen des neuen Benutzers und legen Sie das Standard-Ausgangsverzeichnis für ihn wie folgt fest:In dieser Zeile können Sie auch einen echten Namen für den neuen Benutzer hinzufügen oder die Standard-Shell festlegen. Etwas wie das:
Seien Sie vorsichtig, nehmen Sie keine weiteren Änderungen vor.
Führen Sie nach dem Speichern der Datei vor dem Verlassen des Root-Kontos die folgenden Befehle aus:
Danach wird der Basisordner für den neuen Benutzer nach der ersten Anmeldung automatisch ausgefüllt.
Siehe auch: So legen Sie den Benutzer-Basisordner nach der Kontoerstellung an
quelle
/etc/passwd
(sofern er noch nicht vorhanden ist). Sobald sich der Benutzer anmeldet, wird der Basisordner automatisch mit diesen Unterverzeichnissen gefüllt. Dies alles wird jedoch erledigt, indem jemand einen Benutzer hinzufügtadduser
, der anstelle von verwendetuseradd
.adduser
: Der Home-Ordner wird automatisch erstellt. Tatsächlich wird der Basisordner nach der ersten Anmeldung automatisch ausgefüllt.cp /etc/skel/* /home/new_username
? Gibt es auch einen Grund, warum Sie zwei aufeinanderfolgendechown
Befehle verwenden?Alles, was Sie wirklich brauchen, ist der Home-Ordner, damit es funktioniert. Als Wurzel
Wenn Sie sich zum ersten Mal anmelden, sollten alle erforderlichen Dateien erstellt werden. Dies sind anscheinend die folgenden:
quelle