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

RHN Satellite Server (spacewalk) repomd.xml not found

"repomd.xml not found" If you add a channel, or if your RHN cache gets corrupted, and one of your guests complains that it cannot find repomd.xml for jb-ews-2-x86_64-server-5-rpm (for example) - you need to rebuild your repodata cache. Normally this is an automated job - which is exemplified by the fact that you have obviously built out your entire Satellite environment and never had to do any of the steps you are about to do. So - some prep work: Open 3 terminals to your Satellite Server and run: # Term 1 cd /var/cache/rhn watch "ls -l | wc -l" # Term 2 pwd cd /var/log/rhn tail -f rhn_taskomatic_daemon.log # Term 3 satellite-sync --channel=jb-ews-2-x86_64-server-5-rpm Once the satellite-sync has completed, you >should< see the count increment by one.  If you are unlucky (like me) you will not. You then need to login to the Satellite WebUI as the satellite admin user. Click on the Admin tab (at the top) Task Schedules (on the left) fin

Install RHEL 7 on old HP DL380 g5

Someone at work had been running RHEL on an HP DL380 G5 and blew it up.  After several attempts at doing an installation that made me conclude the hardware was actually bad... I kept digging for the answer. Attempt install and Anaconda could not find any disks - try a Drivers Disk (dd.img) both cciss and hpsa.   -- once we did that, when the system would reboot it would say it could not find a disk. hmmm. Boot from your installation media and interrupt the startup at grub. Add hpsa.hpsa_allow_any=1 hpsa.hpsa_simple_mode=1 to the line starting with linuxefi press CTRL-X to boot. Once the system restarts after the install, you need to once again interrupt the startup and add the line from above. After the system starts, edit /etc/default/grub and add those 2 parameters to the end of the line starting with GRUB_CMDLINE_LINUX (which likely has quiet at the end of the line currently). then run # cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.orig # grub2-mkconfig -o /boot/grub2

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