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

P2V using dd for KVM-QEMU guest

Preface: I have certainly not exhaustively tested this process.  I had a specific need and found a specific solution that worked. Situation:  I was issued a shiny new laptop running Red Hat Enterprise Linux 7 (with Corp VPN, certs, Authentication configuration, etc...)  The image was great, but I needed more flexibility on my bare metal.  So, my goal was to P2V the corporate image so I could just run it as a VM. * Remove corporate drive and install new SSD * install corp drive in external USB-3 case * Install RHEL 7 on new SSD * dd old drive to a disk-image file in a temp location which will be an image which is the same size as your actual drive (unless you have enough space in your destination to contain a temp and converted image) * convert the raw disk-image to a qcow file while pushing it to the final location - this step should reduce the disk size - however, I believe it will only reduce/collapse zero-byte blocks (not just free space - i.e. if you de...

Extending SNMP to run arbitrary shell script

Why are we here... This is not likely something I would have pursued under normal circumstances.  I happen to be working for a customer/client who is not afforded a lot of flexibility to accomplish their goals.  In this case, the rigor is justified.  They have to sometimes be fairly creative with how they solve problems. In this case they would like to utilize an existing snmp implementation to execute a command (or shell script) on a remote system.  They came to me with the idea of using Net-SNMP extend. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sect-System_Monitoring_Tools-Net-SNMP-Extending.html NOTE:  This is NOT a good implementation strategy in the "real world"  it will simply allow you to test the functionality.  There are a TON of security implications which would need to be taken in to consideration. Implementation Steps: [root@rh7tst01 ~]# yum -y install net-snmp net-snmp-utils ...

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...