Vraag Maak een standaard basismap voor de bestaande gebruiker in terminal


Hoe doe ik dit? Ik heb een gebruiker gemaakt zonder thuismap en nu wil ik er een aanmaken. Niet alleen een map met de naam new_user, ik wil de standaard home-directory met al zijn mappen en verborgen bestanden, enz.


118
2017-08-22 18:54


oorsprong


Wanneer de gebruiker inlogt, worden die submappen (Documenten, Downloads, enz ...) automatisch aangemaakt. Hoewel ik op zoek ben naar manieren om zijn login via de terminal te "simuleren". - Alaa Ali
@Alaa su new_user : D - Radu Rădeanu
@ RaduRădeanu ja dat heb ik al geprobeerd, ook geprobeerd sudo -i -u new_user maar het werkt niet. Ik denk dat we "een X-login moeten simuleren" ... ik weet niet hoe dat moet. - Alaa Ali
als u zich aanmeldt, worden de submappen niet thuis gemaakt. - Jo Rijo


antwoorden:


Gebruik het volgende (als root, of met sudo indien niet root):

mkhomedir_helper username

Om dit te laten werken, map /home/username mag niet bestaan.

Voor X-gerelateerde mappen (Desktop, Downloads, enz.) Moet je inloggen in een grafische omgeving; ze worden automatisch gegenereerd wanneer u zich voor de eerste keer aanmeldt.


177
2017-11-05 19:48



Eenvoudig en handig. Op deze manier kunt u er ook zeker van zijn dat de nieuw gemaakte thuismap voldoet aan uw systeembeleid, zonder ze ooit te kennen of handmatig te sleutelen. - gerlos
Dit is het juiste antwoord, het werkte in ieder geval voor mij op Ubuntu 14.04.2 LTS. - Christian Wilkie
Ik moest eerst mijn gebruikersnaam in / etc / passwd hebben voordat dit voor mij werkte. - user79878
Eenvoudig ... werkt gewoon (tm). Zou het geaccepteerde antwoord moeten zijn - Newtopian


De submappen (Documenten, Downloads, enz ...) worden automatisch aangemaakt wanneer de gebruiker zich voor het eerst aanmeldt via GNOME, op voorwaarde dat de basismap met de juiste machtigingen is aangemaakt. Hier is een demonstratie:

alaa @ aa-lu: ~ $ sudo useradd testinguser
alaa @ aa-lu: ~ $ sudo passwd testinguser
Voer een nieuw UNIX-wachtwoord in:
Voer het nieuwe UNIX-wachtwoord opnieuw in:
passwd: wachtwoord is succesvol bijgewerkt
alaa @ aa-lu: ~ $ sudo ls -l / home
totaal 20
drwxr-xr-x 55 alaa alaa 4096 22 aug 22:00 alaa
drwx ------ 2 root root 16384 jun 5 09:46 verloren + gevonden
alaa @ aa-lu: ~ $ sudo mkdir / home / testinguser
alaa @ aa-lu: ~ $ sudo chown testinguser: testinguser / home / testinguser
alaa @ aa-lu: ~ $ ls -l / home
totaal 24
drwxr-xr-x 55 alaa alaa 4096 22 aug 22:00 alaa
drwx ------ 2 root root 16384 jun 5 09:46 verloren + gevonden
drwxr-xr-x 2 testgebruiker testgebruiker 4096 23 aug 10:03 testgebruiker
alaa @ aa-lu: ~ $ ls -l / home / testinguser /
totaal 0
alaa @ aa-lu: ~ $

U kunt controleren of de basismap van de gebruiker correct is ingesteld door de invoer in te vinken /etc/passwd. U zou standaard de hoofddirectory moeten zien ingesteld op /home/testinguser:

alaa @ aa-lu: ~ $ grep testinguser / etc / passwd
testinguser: x: 1001: 1001 ::/ Home / testinguser: / Bin / sh

Als u de basismap niet ziet /home/testinguser daar moet je het commando uitvoeren sudo usermod -d /home/testinguser testinguser om deze bij te werken, hoewel u deze opdracht niet zou hoeven te gebruiken omdat deze standaard zou moeten worden ingesteld (volgens useraddde manpages).

Ik heb toen uitgelogd van mijn account en weer ingelogd met testinguser, en hier worden de submappen automatisch aangemaakt:

alaa @ aa-lu: ~ $ ls -l / home / testinguser /
totaal 36
drwxr-xr-x 2 testgebruiker testgebruiker 4096 23 aug. 10:05 Desktop
drwxr-xr-x 2 testinguser testinguser 4096 23 aug. 10:05 Documenten
drwxr-xr-x 2 testgebruiker testgebruiker 4096 23 aug. 10:05 Downloads
drwxr-xr-x 2 testinguser testinguser 4096 23 aug 10:05 Muziek
drwxr-xr-x 2 testinguser testinguser 4096 23 aug. 10:07 Afbeeldingen
drwxr-xr-x 2 testinguser testinguser 4096 23 aug 10:05 Openbaar
drwxr-xr-x 2 testinguser testinguser 4096 23 aug. 10:05 Sjablonen
drwxr-xr-x 2 testinguser testinguser 4096 23 aug 10:05 Video's

Ik hoefde de inhoud van niet te kopiëren /etc/skel.

Als het mogelijk is, kunt u proberen deze stappen te volgen en een nieuwe gebruiker te maken? Als u klaar bent, kunt u deze nieuwe gebruiker verwijderen door sudo deluser testinguser && sudo rm -r /home/testinguser.

Als dit allemaal niet met je werkt, denk ik dat het een fout is.


31
2017-08-23 06:22



In sommige situaties wanneer u gebruikt useradd, de standaard basismap voor de nieuwe gebruiker wordt niet automatisch ingesteld op /home/username. Dus, eerste ypu moet daar zeker van zijn. - Radu Rădeanu
Kun je me een voorbeeld geven van deze situaties =)? Van de manpagina's van useradd: "useradd gebruikt de basisdirectory die is opgegeven door de variabele HOME in /etc/default/useraddof /home standaard. "De HOME-variabele in /etc/default/useradd is niet standaard gedefinieerd, dus useradd zal altijd gebruiken /home. Hoe dan ook, ik zal mijn antwoord bewerken en het te controleren onderdeel verplaatsen /etc/passwd up. - Alaa Ali
Een voorbeeld hier. Nog een voorbeeld: u verwijdert een gebruiker, maar u hebt zijn mappen en bestanden niet verwijderd; en dan voeg je opnieuw een gebruiker met dezelfde naam toe. En er zijn er veel, en er zijn geen bugs :) - Radu Rădeanu
Als je het niet hebt /bin/sh in de gebruikersregel /etc/passwd je moet een shell voor die gebruiker toevoegen, bijvoorbeeld de standaard shell met usermod -s /bin/sh testuser - rubo77


UPDATE: De oplossing is verbroken en werkt ook niet voor mij.

Als u de hoofddirectory van de gebruiker wilt maken als deze nog niet bestaat, voert u de useradd commando met de -m vlag. Hiermee kopieert u alle bestanden van de /etc/skel directory.

useradd -m username

Mogelijk moet u de instellingen voor uw systeem configureren. Volgens de manpagina:

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

en geeft verder aan:

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.

12
2017-08-22 19:54



dit lijkt te proberen een nieuwe gebruiker te maken, omdat het zegt dat "gebruiker 'nieuwe gebruiker al bestaat". - Jo Rijo
Ik heb ook het -m vlag bij het maken van een nieuwe gebruiker sowieso, en het werkte niet; het kopieert alleen de skeletbestanden. - Alaa Ali
@Jo: En hoe is dit fout, omdat de gebruiker volgens het eerste bericht al bestaat. - crafter
Dit antwoord lost het probleem niet op. kopiëren /etc/skel maakt de submappen niet aan in de basismap. Ook, useradd -m wordt gebruikt bij het maken van een nieuwe gebruiker, niet wanneer de gebruiker al is toegevoegd. - Alaa Ali
Ik heb het bericht bijgewerkt, dus stel CREATE_HOME in op yes in het login.defs-configuratiebestand. - crafter


Als je de nieuwe gebruiker hebt gemaakt met adduser opdracht, hoeft u geen thuismap voor de nieuwe gebruiker te maken. Een thuismap met de naam van de gebruiker in /home directory, met de volgende submappen: Desktop, Downloads, Documenten, Muziek, Afbeeldingen, Video's (en andere), voor de nieuwe gebruiker wordt automatisch gemaakt.

Als je de nieuwe gebruiker hebt gemaakt met useradd commando, voer dan de volgende commando's uit in terminal:

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

aanpassen /etc/passwd bestand als root (dit is de belangrijkste stap). Zoek de regel met de naam van de nieuwe gebruiker en stel de standaard basismap voor hem zo in:

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

Op deze regel kunt u ook een echte naam voor de nieuwe gebruiker toevoegen of de standaardshell instellen. Iets zoals dit:

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

Wees voorzichtig, breng geen andere wijzigingen aan.

Nadat u het bestand hebt opgeslagen, voert u eerst de volgende opdrachten uit voordat u het root-account verlaat:

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

Na dit alles wordt de thuismap voor de nieuwe gebruiker automatisch ingevuld na de eerste aanmelding.

Zie ook: Hoe maak je de basismap van de gebruiker na het maken van de account?


4
2017-08-22 19:18



Voor zover ik me herinner, wordt de basismap niet automatisch aangemaakt, moet je hem handmatig aanmaken en de invoer van de gebruiker bijwerken /etc/passwd (als het er nog niet is). Zodra de gebruiker zich aanmeldt, wordt de basismap automatisch gevuld met die submappen. Dit alles wordt echter verzorgd door iemand die een gebruiker gebruikt adduser, in plaats van useradd. - Alaa Ali
@Alaa Ik heb het een paar dagen geleden net getest en ik heb het gebruikt adduser: de thuismap is automatisch gemaakt. En inderdaad, de thuismap wordt automatisch ingevuld na de eerste aanmelding. - Radu Rădeanu
dit lijkt niets te doen. Misschien probeer ik het bash-script uit de andere vraag, maar kan ik niet gewoon een map in / home / called new_user maken en de inhoud van / etc / skel ernaar kopiëren? is dat wat dat bash-script doet? - Jo Rijo
@JoRijo Ik heb mijn antwoord bewerkt. - Radu Rădeanu
@ RaduRădeanu, meen je dat niet? cp /etc/skel/* /home/new_username? Ook is er een reden waarom je twee opeenvolgende gebruiken chown commando's? - Alaa Ali


Alles wat u nodig hebt, is de thuismap om het te laten werken. Als root,

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

Als u zich de eerste keer aanmeldt, moet u alle benodigde bestanden maken, dat zijn die:

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

3
2018-06-04 20:49