Vraag Hoofddirectory niet gemaakt


Ik probeer het systeembeheer op Ubuntu te begrijpen. Dus, als een voorbeeld maak ik een dummy-gebruiker met behulp van

sudo useradd -d /home/linda linda

en passwd om het wachtwoord te maken. Ik controleer of een item is gemaakt met cat /etc/passwd

linda:x:1004:1004::/home/linda:/bin/sh

Echter, wanneer ik su - linda, Ik krijg

No directory, logging in with HOME=/

en inderdaad, er is geen thuismap aangemaakt. Wat mis ik?

Bedankt.


72
2017-11-10 10:48


oorsprong




antwoorden:


man useradd luidt als volgt:

useradd is a low level utility for adding users. On Debian,
administrators should usually use adduser(8) instead.

Merk op low level utility

Gebruik om een ​​gebruiker toe te voegen adduser in plaats daarvan. Het is een hulpprogramma van een hoger niveau.


Bovendien, kijkend naar de -d keuze:

   -d, --home HOME_DIR
       The new user will be created using HOME_DIR as the value for the
       user's login directory. The default is to append the LOGIN name to
       BASE_DIR and use that as the login directory name. The directory
       HOME_DIR does not have to exist but will not be created if it is
       missing.

The directory will not be created if it is missing.

Over het algemeen blijf uit de buurt useradd, gebruik adduser in plaats daarvan.


79
2017-11-10 11:03



In de verdediging van het OP, toen ik "On Debian" las, dacht ik dat het op Debian betekende, in tegenstelling tot Ubuntu distros. Ik ben me ervan bewust dat Ubuntu op Debian is gebouwd, maar dacht dat er een onderscheid werd gemaakt. - Keith Bennett
ik gebruikte adduser maar nog steeds bevat de aangemaakte homedirectory alleen een bestand examples.desktop en niets anders. Hoe kan ik Ubuntu vragen om de standaardmappen Desktop, Downloads enzovoort te maken? (Ik ben ingelogd via ssh) - mcExchange
Hallo, sorry late reactie en alleen maar raden, maar ik denk dat die mappen automatisch worden gemaakt op de eerste GUI-login. Dacht alleen dat mensen hier nog kunnen landen;) - derHugo
adduser zal de map niet aanmaken als iemand CREATE_HOME heeft veranderd in /etc/login.defs naar "nee". U kunt dit overschrijven met de -m vlag. - Noumenon


je kunt dit eenvoudigweg oplossen door de thuismap aan te maken.

mkdir /home/linda
chown linda:linda /home/linda

probeer opnieuw in te loggen en dit zou moeten werken.


28
2017-11-10 11:10





Volgens met man useradd, -d /home/linda optie maakt de map niet aan /home/linda, als dit ontbreekt. Dus je moet het handmatig maken. Hiertoe voert u de volgende opdrachten in de terminal uit:

sudo -i                            #to get root privileges
mkdir /home/linda                  #to create the directory /home/linda
cp -rT /etc/skel /home/linda         #to populate /home/linda with default files and folders
chown -R linda:linda /home/linda   #to change the owner of /home/linda to user linda

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


12
2017-11-10 12:44





Kijk naar /etc/defaults/useradd als u de standaardinstellingen wilt wijzigen. Gebruik:

useradd -m -d /home/joe -s /bin/bash.


6
2018-01-10 16:32



"Volgens man useradd, -d / home / linda optie zal de map / home / linda niet maken" dus nee, dit is geen oplossing. - astrojuanlu


Je kunt ook wijzigen /etc/pam.d/common-session om het zo te maken dat de thuismap van een gebruiker wordt gemaakt bij de eerste keer inloggen. Voeg de volgende regel toe aan dat bestand.

...
session required pam_mkhomedir.so

Dit is met name handig als uw systeem zich op een netwerk bevindt waar de gebruikers extern naar uw machine worden beheerd, bijvoorbeeld door LDAP.


4
2017-11-13 20:10



Goed advies, bedankt. - tchakravarty


Gebruik -m in plaats van -d, dus de directory wordt voor u gemaakt:

sudo useradd -m linda

Ook als linda is een normale gebruiker, misschien wilt u dat zij deze gebruikt /bin/bash als standaard shell:

sudo useradd -m linda -s /bin/bash


4
2017-12-21 11:13





Voeg het onderstaande item toe /etc/login.defs en opslaan:

CREATE_HOME yes

Probeer nu gebruikersaccounts te maken. Hiermee wordt de basismap gemaakt.


3
2018-06-08 06:43



Het werkte voor mij. Ik moest een basisscript hebben dat gebruikers op afstand kan toevoegen / beheren met verschillende smaken van Linux. Na deze wijziging produceert mijn code dezelfde resultaten op alle servers. Bedankt. - sdkks


Gebruik adduser.

DESCRIPTION

 adduser  and  addgroup  add users and groups to the system according to
   command    line    options    and    configuration    information    in
   /etc/adduser.conf.   They  are  friendlier  front ends to the low level
   tools like useradd, groupadd and usermod programs, by default  choosing
   Debian  policy conformant UID and GID values, creating a home directory
   with skeletal configuration, running a custom script,  and  other  fea‐
   tures.  adduser and addgroup can be run in one of five modes:

useradd je moet alle opties zelf toevoegen. Inclusief rechten en enkele andere dingen.adduser doet dit op basis van gezonde standaardwaarden (en voegt ook thuismap zelf toe).

Als u adduser moet gebruiken, hebt u waarschijnlijk de optie -b nodig samen met de optie -d!


1
2017-11-10 11:05





Als /home/linda is niet aanwezig voordat je linda toevoegt als een gebruiker, je zou ook moeten toevoegen --create-home.

sudo useradd --create-home linda

0
2017-09-17 06:21





De meest waarschijnlijke reden waarom u de zelfgemaakte map niet hebt gemaakt, is omdat u de map niet had CREATE_HOME yes in /etc/login.defs.

U kunt dit oplossen door te volgen wat @OmPS of @Radu Rădeanu had voorgesteld.

Maar dat vele manieren om dit probleem in de toekomst te overwinnen door een van de onderstaande commando's te gebruiken:

  • Resultaat van sudo adduser linda

    Adding user 'linda'
    Adding new group 'linda' (1001) ...
    Adding new user 'linda' (1001) with group 'linda' ...
    Creating home directory '/home/linda' ...
    Copying files from '/etc/skel' ...
    ****Password confirmation****
    ****Name prompt****
    

    De standaardinstellingen voor adduser zijn gekozen uit /etc/adduser.conf als --home optie is niet gespecificeerd. Merk op dat het ook de kopieert /etc/skel inhoud.

  • Gebruik adduser met --home

    sudo adduser --home /home/linda
    

Hetzelfde als de vorige optie, behalve dat u dit misschien wilt als de gebruikers thuismap is anders dan de gebruikersnaam die u hebt toegewezen.

  • Geef de basisdirectory op useradd opdracht:

    sudo useradd -b /home
    
  • Gebruik login.defs: Wijzigen /etc/login.defs en voeg de onderstaande regel toe voordat je het doet sudo useradd:

    CREATE_HOME   yes
    

Let op: als je dat doet man login.defs, zegt het momenteel

Een groot deel van de functionaliteit die voorheen door de Shadow Password Suite werd geboden, wordt nu door PAM verwerkt. Dus, /etc/login.defs wordt niet langer gebruikt door passwd (1), of minder gebruikt door login (1), en su (1). Raadpleeg in plaats hiervan de bijbehorende PAM-configuratiebestanden.

  • Gebruik pam_mkhomedir PAM-module: from man pam_mkhomedir pagina, voeg de onderstaande regel toe aan /etc/pam.d/login:

    session  required  pam_mkhomedir.so skel=/etc/skel
    

0
2017-12-17 18:51