Erstellen Sie das Standard-Home-Verzeichnis für den vorhandenen Benutzer im Terminal

116

Wie mache ich das? Ich habe einen Benutzer ohne ein Home-Verzeichnis erstellt und möchte jetzt eines erstellen. Nicht nur ein Ordner namens new_user, ich möchte das Standard-Home-Verzeichnis mit all seinen Ordnern und versteckten Dateien, etc.

    
Jo Rijo 22.08.2013, 20:54
quelle

5 Antworten

174

Verwenden Sie Folgendes (als root oder mit sudo, falls nicht root):

mkhomedir_helper username

Damit dies funktioniert, darf der Ordner /home/username nicht existieren.

Bei X-bezogenen Ordnern (Desktop, Downloads usw.) müssen Sie sich in einer Grafikumgebung anmelden. Sie werden bei der ersten Anmeldung automatisch generiert.

    
kavadias 05.11.2014 20:48
quelle
31

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:

alaa@aa-lu:~$ sudo useradd testinguser
alaa@aa-lu:~$ sudo passwd testinguser
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
alaa@aa-lu:~$ sudo ls -l /home
total 20
drwxr-xr-x 55 alaa alaa  4096 Aug 22 22:00 alaa
drwx------  2 root root 16384 Jun  5 09:46 lost+found
alaa@aa-lu:~$ sudo mkdir /home/testinguser
alaa@aa-lu:~$ sudo chown testinguser:testinguser /home/testinguser
alaa@aa-lu:~$ ls -l /home
total 24
drwxr-xr-x 55 alaa        alaa         4096 Aug 22 22:00 alaa
drwx------  2 root        root        16384 Jun  5 09:46 lost+found
drwxr-xr-x  2 testinguser testinguser  4096 Aug 23 10:03 testinguser
alaa@aa-lu:~$ ls -l /home/testinguser/
total 0
alaa@aa-lu:~$

Sie können überprüfen, ob das Home-Verzeichnis des Benutzers korrekt eingestellt ist, indem Sie den Eintrag in /etc/passwd überprüfen. Sie sollten standardmäßig das Home-Verzeichnis auf /home/testinguser :

setzen
alaa@aa-lu:~$ grep testinguser /etc/passwd
testinguser:x:1001:1001::/home/testinguser:/bin/sh

Wenn Sie das Home-Verzeichnis /home/testinguser dort nicht sehen, müssen Sie den Befehl sudo usermod -d /home/testinguser testinguser ausführen, um es zu aktualisieren, obwohl Sie diesen Befehl nicht verwenden sollten, weil er standardmäßig (entsprechend auf die Hilfeseiten von useradd ).

Ich habe mich dann von meinem Konto abgemeldet und wieder mit testinguser angemeldet, und hier werden die Unterverzeichnisse automatisch erstellt:

alaa@aa-lu:~$ ls -l /home/testinguser/
total 36
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Desktop
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Documents
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Downloads
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Music
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:07 Pictures
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Public
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Templates
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Videos

Ich musste den Inhalt von /etc/skel nicht kopieren.

Wenn möglich, können Sie diese Schritte ausführen, indem Sie einen anderen neuen Benutzer erstellen? Sobald Sie fertig sind, können Sie diesen neuen Benutzer um sudo deluser testinguser && sudo rm -r /home/testinguser entfernen.

Wenn all das bei dir nicht funktioniert hat, dann vermute ich, dass es ein Fehler ist.

    
Alaa Ali 23.08.2013 08:22
quelle
12

UPDATE: Die Lösung ist kaputt und funktioniert auch nicht für mich.

Wenn Sie das Ausgangsverzeichnis des Benutzers erstellen möchten, wenn es nicht existiert, dann führen Sie den Befehl useradd mit dem -m -Flag aus. Dadurch werden alle Dateien aus dem Verzeichnis /etc/skel kopiert.

useradd -m username

Sie müssen möglicherweise Einstellungen für Ihr System konfigurieren. Laut der man-Seite:

  -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.

    By default, if this option is not specified and CREATE_HOME is not enabled, no
    home directories are created.

und zeigt weiter an:

CONFIGURATION

   The following configuration variables in /etc/login.defs change the behavior
   of this tool:

   CREATE_HOME (boolean)
       Indicate if a home directory should be created by default for new users.
    
crafter 22.08.2013 21:54
quelle
4

Wenn Sie den neuen Benutzer mit dem Befehl adduser erstellt haben, müssen Sie kein Basisverzeichnis für den neuen Benutzer erstellen. Ein Home-Verzeichnis mit dem Namen des Benutzers im Verzeichnis /home mit folgenden Unterverzeichnissen: Desktop, Downloads, Dokumente, Musik, Bilder, Videos (und andere) für den neuen Benutzer werden automatisch erstellt.

Wenn Sie den neuen Benutzer mit dem Befehl useradd erstellt haben, führen Sie die folgenden Befehle im Terminal aus:

sudo -i     #enter your user password when you are asked
gedit /etc/passwd

zum Bearbeiten von /etc/passwd file als root (dies ist der wichtigste Schritt). Suchen Sie die Zeile mit dem Namen des neuen Benutzers und legen Sie das Standard-Home-Verzeichnis für ihn so fest:

new_username:x:1001:1001::/home/new_username:/bin/sh

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:

new_username:x:1001:1001:Real New Username,,,:/home/new_username:/bin/bash

Seien Sie vorsichtig, nehmen Sie keine anderen Änderungen vor.

Führen Sie nach dem Speichern der Datei die folgenden Befehle aus, bevor Sie das root-Konto verlassen:

mkdir /home/new_username                                      #to create the directory /home/new_username
cp /etc/skel/* /home/new_username                             #to copy copy files from the /home/new_username
chown -R new_username:new_username /home/new_username   #to change the owner of /home/new_username to the new user

Nach all diesen Schritten wird der Benutzerordner für den neuen Benutzer automatisch nach der ersten Anmeldung ausgefüllt.

Siehe auch: So erstellen Sie den Benutzerordner nach dem Benutzerkonto Erstellung?

    
Radu Rădeanu 22.08.2013 21:18
quelle
3

Alles, was Sie wirklich brauchen, ist der Home-Ordner, damit es funktioniert. Als root,

cd /home
cd mkdir username
chown username username
chgrp username username

Wenn Sie sich das erste Mal anmelden, sollten Sie alle notwendigen Dateien erstellen, die so aussehen:

drwxr-xr-x 16 fotanus fotanus 4096 Jun  4 17:46 .
drwxr-xr-x  9 root    root    4096 Jun  4 17:43 ..
drwx------ 11 fotanus fotanus 4096 Jun  4 17:46 .cache
drwx------ 13 fotanus fotanus 4096 Jun  4 17:46 .config
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Desktop
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Documents
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Downloads
drwx------  3 fotanus fotanus 4096 Jun  4 17:46 .gconf
drwxrwxr-x  2 fotanus fotanus 4096 Jun  4 17:46 .gstreamer-0.10
-rw-------  1 fotanus fotanus  334 Jun  4 17:45 .ICEauthority
drwxr-xr-x  3 fotanus fotanus 4096 Jun  4 17:45 .local
drwx------  4 fotanus fotanus 4096 Jun  4 17:45 .mozilla
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Music
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Pictures
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Public
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Templates
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Videos
-rw-------  1 fotanus fotanus   55 Jun  4 17:45 .Xauthority
-rw-------  1 fotanus fotanus  711 Jun  4 17:45 .xsession-errors
    
fotanus 04.06.2014 22:49
quelle

Tags und Links