A scenario I ran into recently involved an existing user who had their computer re-imaged with OS 10.10.5. Their user data was backed up and restored prior to returning the system to the user. To restore data I first use
createmobileaccount to create a home directory and cache user information based off of AD, then rsync the data into the local home directory. Since I don’t know the user’s password I don’t use the
-p option leaving the cached account information without a password. Instead, the password is cached the first time the user logs in. However, that only works when the computer can talk to our AD environment.
This user didn’t log in prior to taking the laptop out of the office for the week (who does that after a computer upgrade?!). Since no password was cached there was nothing to authorize their credentials against. This could make for a long week for this user.
Since I had already created a home folder with all the user data I didn’t want to erase it or even have to bother with moving it around to a temporary user account. Instead I did the following to preserve the files and allow the user to log in off-site:
- Have the user log in as a local admin.
- Have the user log into our company VPN as themselves.
- I gained access to the computer via Apple Remote Desktop (ssh, ScreenSharing, or any other means would work as well)
- I removed the current cached user info, sans password with
sudo dscl . -delete /Users/<username>. This removes the locally cached information for the user from /var/db/dslocal/nodes/Default/users/<username>.plist but leaves the /Users/<username> home folder data alone.
- I then issued
sudo /System/Library/CoreServices/ManagedClient.app/Contents/Resources/createmobileaccount -n <username> -p <password>. I had the user type their password to match their AD account.
Step 5 recreates the cached user information in /var/db/dslocal/nodes/Default/users/<userid>.plist (as long as the computer can talk to Active Directory), but this time with a cached password. Log out of the admin account and now the user can log in as themselves off-site using their AD credentials and access the already created home directory in /Users/<username>.