Skip to main content

Install/Configure Mac OS X in a Linux kind of way...

NOTE:   I have abandoned this approach to user management on my machine...  Changing the UID, when done properly, should be a non-event.  It is, after all, just a bunch of files ;-)  However, after now doing a clean install and NOT changing my UID from 501, my machine is behaving quite well.  Possibly unrelated, but I have work to get done...

This post is most likely trivial and borderline useless to most... but... I have run into an issue which is quite perplexing and until now I have written it off as coincidence.

My goal - allow myself the ability to easily use my Mac Mini Server (OS Snow Leopard Server), Mac Book Pro (OS X Mountain Lion), Lenovo T520 (RHEL 6.3 and Windows 7) and my whitebox file server (RHEL 6.3) all function with each other.  My primary focus is to be able to pick up either my Lenovo or my MBP and head out the door and have the stuff I need (without any cloud integration).

Now - sadly... this whole episode actually hinges on my Mac's misbehaving.  Which I have recently discovered is most likely because of the way I set them up.  Mac OS X uses LDAP (OpenLDAP, I believe) to manage the User environment.  I had continued to use more of a legacy UNIX-ish approach by attempting to modify the UID of my user.  Of course, I create the user when I install the OS, then go in and update the UID later (and change the permissions recursively in my home directory).  Should work, right?  Well, sort of....

If you have went down this route, do the following:
# sudo su -
# find / -uid 501 -exec ls -l {} \;
and notice how many files exist, with an owner id of the original user that was created.  All of those files are basically orphaned and unmanageable.  Depending on how soon you updated your UID after the installation may have an impact on how messed up things are.

Fortunately I do not use the UID: 501 for anything... so, I am about to adopt a different approach to install OS X on my machines (which I sort of do with Linux anyhow)
Install OS X (erasing the destination drive)
create my personal user as an adminstrator
update sudoers
login as myself and create an account for my better half (also as an admin), then logout
login as the better half
# sudo -s
# dscl . -read /Users/<username> UniqueID
UniqueID: 501
# dscl . -change /Users/<username> UniqueID 501 2025
# dscl . -read /Users/<username> UniqueID
UniqueID: 2025

# find / -user 501 -exec chown <username> {} \;
# chflags -R nouchg,nouappend /Users/jradtke 

reboot...
<I believe I will delete the "dummy" user at this point>

OS X Server at least makes the process to set the UID a bit easier, even as convoluted as the Server Manager Applet is.

NOTES:
How did I come to the conclusion that my UID was causing issues?  I would perform a "clean install" of OS X on my MBP.  I would then login and get my entire environment setup (Google Chrome, a few plugins for my Garmin, Applications like MS Office, etc...).  I would go through a fairly methodical ritual of changing the UID an updating Sudoers, etc... and after that odd things would happen... Time Machine would never finish a complete backup, my Garmin plugin would inexplicably no longer work and with no resolution, etc...
Then.. I went to install some software from my Samba share using my own user and I was getting no love (and again, no easily identifiable culprit).  I then started to research the appropriate way to change a UID and I was floored at all the differing levels of involvement I was finding. Some recommended just using the System Preferences and a few chown's... others would include using dscli, etc...  In all cases, it seems like arbitrarily changing a UID once a user exists is not a great idea.

References:
http://www.inteller.net/notes/change-user-id-on-snow-leopard
http://superuser.com/questions/134577/consequences-of-changing-uid-gid-on-snow-leopard
http://superuser.com/questions/70156/hide-users-from-mac-os-x-snow-leopard-logon-screen

Comments

Popular posts from this blog

PXE boot a LiveCD image

Summary: I have wanted to build a kickstart environment which hosted a "rescue CD" or LiveCD to allow you to boot over the network after you blew your stuff up and needed to repair a few things.  Today I have worked through a method of doing so, with the help of the people who published a succinct script with the Red Hat Enterprise Virtualization Hypervisor.  (the script will be at the bottom of this post - if I have somehow not followed the GPL, please let me know and I will correct whatever is necessary) NOTE/Warning: The boot will fail due the initrd being too large (645mb).  I'm not sure how to proceed.  This procedure worked for RHEVh, because it is quite a bit smaller.  Hopefully I can report back with progress on this? :-$ Procedure: download your LiveCD image to /export/isos/RESCUE/Fedora-16-i686-Live-Desktop.iso # cd /var/tmp # vi livecd-iso-to-pxeboot (populate the file with the script shown below) # chmod 754 ./livecd-iso-to-pxeb...

"Error getting authority: Error initializing authority: Could not connect: No such file or directory (g-io-error-quark, 1)"

"Error getting authority: Error initializing authority: Could not connect: No such file or directory (g-io-error-quark, 1)" One issue that may cause this to arise is if you managed to break your /etc/fstab We had an engineer add a line with the intended options of "nfsvers=3" but instead added "-onfsvers=3" and it broke the system fairly catastrophically.

MOTD with colors! (also applies to shell profiles)

I'm not sure why I had never looked into this before, but this evening I became obsessed with discovering how to present different colored text in the /etc/motd. A person had suggested creating a shell script (rather than using special editing modes in vi, or something) and I agree that is the simplest way of getting this accomplished quickly. This most noteworthy portion of this script is the following: RESET="\033[0m" that puts the users shell back to the original color. I typically like a green text on black background. Also - a great reference for the different colors and font-type (underscore, etc...) https://wiki.archlinux.org/index.php/Color_Bash_Prompt I found this example on the web and I wish I could recall where so that I could provide credit to that person. #!/bin/bash #define the filename to use as output motd="/etc/motd" # Collect useful information about your system # $USER is automatically defined HOSTNAME=`uname -n` KERNEL=`un...