Ik zou graag willen weten of er een eenvoudig shell-commando is om de homedirectory van de gebruiker in Linux/Unix te wijzigen (een vergelijkbaar met chsh die de standaard login-shell van een bestaande geldige gebruiker verandert) zonder door het bestand /etc/passwd
aan te raken. Bedankt
Antwoord 1, autoriteit 100%
Ibrahims opmerking over het andere antwoord is de juiste manier om de homedirectory van een bestaande gebruiker te wijzigen.
Wijzig de thuismap van de gebruiker:
usermod -d /newhome/username username
usermod
is het commando om een bestaande gebruiker te bewerken.
-d
(afkorting voor --home
) wijzigt de homedirectory van de gebruiker.
Wijzig de thuismap van de gebruiker + Verplaats de inhoud van de huidige map van de gebruiker:
usermod -m -d /newhome/username username
-m
(afkorting voor --move-home
) verplaatst de inhoud van de huidige map van de gebruiker naar de nieuwe map.
Antwoord 2, autoriteit 7%
Van Linux standaard gebruikersmap wijzigen terwijl een nieuwe gebruiker wordt toegevoegd:
Open dit bestand gewoon met een teksteditor, typ:
vi /etc/default/useradd
De standaard homedirectory gedefinieerd door de HOME-variabele, zoek de regel die
lees als volgt:HOME=/home
Vervangen door:
HOME=/iscsi/user
Sla het bestand op en sluit het. Nu kunt u een gebruiker toevoegen met behulp van gewone useradd
commando:# useradd vivek # passwd vivek
Gebruikersgegevens verifiëren:
# finger vivek
Antwoord 3, autoriteit 6%
Het geaccepteerde antwoord is fout, omdat de inhoud van de oorspronkelijke gebruikersmap er niet mee wordt verplaatst. Ik ga nog een antwoord toevoegen om het te corrigeren:
sudo usermod -d /newhome/username -m username
U hoeft de map met gebruikersnaam niet aan te maken en hierdoor worden uw bestanden ook verplaatst van de oorspronkelijke gebruikersmap naar de map /newhome/gebruikersnaam.
Antwoord 4
Voor het geval andere lezers informatie zoeken over het adduser
commando.
Bewerk /etc/adduser.conf
Stel DHOME
variabele in
Antwoord 5
Ik kwam erachter dat dit sommige applicaties verbreekt, de betere manier om dit te doen is
Naast symlink, op recentere distributies en bestandssystemen, kun je als root ook bind-mount gebruiken:
mkdir /home/username
mount --bind --verbose /extra-home/username /home/username
Dit is handig om “via” de /home-map toegang te geven tot submappen via daemons die anders zijn geconfigureerd om het pad door symbolische links (apache, ftpd, enz.) te vermijden.
Je moet natuurlijk onthouden (of init-script) om te binden bij herstarten.
Een voorbeeld van een init-script in /etc/fstab
is
/extra-home/username /home/username none defaults,bind 0 0
Antwoord 6
Je kunt het doen met:
/etc/passwd
Bewerk de basismap van de gebruiker en verplaats vervolgens de vereiste bestanden en mappen ernaar:
cp/mv -r /home/$user/.bash* /home/newdir
.bash_profile
.ssh/
Stel de juiste toestemming in
chmod -R $user:$user /home/newdir/.bash*
Antwoord 7
usermod -m -d /newhome gebruikersnaam