Velvet Star Monitor

Standout celebrity highlights with iconic style.

general

Setting a user's home directory on Mac OS X (Server) from the command line

Writer Olivia Zamora

How can I set a user's home directory on Mac OS X Server using the command line?

2 Answers

As you asked how to do it from the command line, I take you can open a SSH session for the Mac OS X server, or you can open a terminal window directly from the server.

If this is the case, then execute the following command: sudo dscl . -change /Users/<username> NFSHomeDirectory <old-path> <new-path>; replace <username>, <old-path>, and <new-path> with, respectively, the user name, the old home directory, and the new home directory. The command -change requires the old value of the key being changed; if you don't know the old value, then you cannot do anything.

If you are not using any SSH session, or you cannot open a terminal window in the Mac OS X, but you can still access the server from another Mac, then the command is a little different. The dot after sudo dscl is the datasource is described in the (dscl(1) Mac OS X Manual Page) as the following:

dscl operates on a datasource specified on the command line. This may be a node name or a Mac OS X Server (10.2 or later) host specified by DNS hostname or IP address. Node names may be absolute paths beginning with a slash ("/"), or relative domain paths beginning with a dot (".") character, which specifies the local domain, or "..", specifying the local domain's parent. If the hostname or IP address form is used then the user must specify the -u option and either the -P of -p options to specify an administrative user and password on the remote host to authenticate with to the remote host. The exception to this is if "localhost" is specified. Passing passwords on the command line is inherently insecure and can cause password exposure. For better security do not provide the password as part of the command and you will be securely prompted.

References

1

Warning: Experiment with this on an unimportant account or machine first; I have not tested this.

It can be done. Something like this:

sudo dscl . -change /Users/$USERNAME NFSHomeDirectory $OLDPATH $NEWPATH 

Then, of course, to actually move their home directory folder to its new path, if you haven't done so already, use the following:

sudo mv $OLDPATH $NEWPATH 

Alternatively, if you do not know the value of $OLDPATH, change by index as follows:

sudo dscl . -changei /Users/$USERNAME NFSHomeDirectory 1 $NEWPATH

Notes

  • dscl is the "Directory Services Command Line" utility
  • Don't worry that the key in question is called NFSHomeDirectory; that's a leftover from the heritage of the schema coming from LDAP

By the way, for this kind of thing, the Mac OS X Server Administration Guides (freely downloadable PDFs) are your friends, especially, in this case, the User Mangement one. It includes both the GUI and command-line ways to do many user management tasks. I believe the Open Directory Administration guide explains the schema.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy