Category: Tutorials

Setting preferences on OS X

There are a number of ways to set preferences on OS X. To name a few:

  1. Local MCX
  2. Modifying the User Template
  3. Configuration Profiles (.mobileconfig files)

However, each has a drawback:

  1. Local MCX is rumored to be deprecated in favor of Configuration Profiles.
  2. The User Template exists in /System, which is generally understood to be owned by Apple. OS updates can (and will) replace files in the User Template folder, potentially breaking your changes or causing login issues.
  3. Although useful, Configuration Profiles can be extraordinarily difficult to work with.

Enter: scriptRunner, by Nate Walck. We’ve been deploying this for a couple of months, and it’s helped significantly. Just script what you want to happen at login, decide if you want it to happen once or at every login, then install your script in a specific location. Combined with dockutil, we’ve managed to transition most of our Local MCX settings to Bash scripts (which are pushed out via Munki).

Some settings were difficult to reimplement, though: for example, we wanted to disable Wi-Fi on our lab iMacs – they’re already connected via Ethernet, so there’s no reason for Wi-Fi to be enabled. With Local MCX, we had the ability to disable specific network interfaces, but that’s not possible with Configuration Profiles. What do we do?

Joe Chilcote’s outset proved to be exactly what we needed. Besides adding logging functionality, outset improves upon scriptRunner in that it can:

  1. Install packages at first boot
  2. Run scripts at first boot
  3. Run scripts at every boot
  4. Run scripts at first login
  5. Run scripts at every login

Therefore, our solution was to run a script at every boot that disabled Wi-Fi.

At the moment, the Macs on campus are running a range of 10.6.x to 10.9.x. Since outset has only been tested on 10.9.x, we’re pushing scriptRunner to Macs running 10.6.x to 10.8.x, and outset to Macs running 10.9.x. scriptRunner’s paths have been changed to match outset’s, so we can push the same scripts to both.

Tested with: 10.6, 10.7, 10.8, 10.9, 10.10

Customizing the login window in Mavericks

Before 10.9 Mavericks, customizing the login window was a sometimes complicated process. Apple has changed the resources for the login window several times over the years.

If possible, it’s generally a good idea to stay away from altering system files. However, our Windows PCs are branded, so we’d like to do the same for our Macs. With 10.9, we’ve settled upon replacing the Apple logo with our own.

We started off using this tutorial from OS X Daily – however, we found that the results weren’t consistent when replacing the Apple logo images with full-sized backgrounds as the tutorial recommends. With so many resolutions to support, we found that our custom background didn’t always cover the default gray Apple background.

Instead, after much testing, we came up with this:

  1. In the Finder, type Command-Shift-G and open /System/Library/PrivateFrameworks/LoginUIKit.framework/Versions/A/Frameworks/LoginUICore.framework/Resources/
  2. Make backups of these files: “apple_s1.png”, “apple_s1@2x.png”, “apple.png”, and “apple@2x.png”.
  3. Open each file in an image editor (I like Acorn), and double the size of each image.  Delete the Apple logo and replace it with a transparent version of your own.
  4. Copy your modified versions of these files back to their original folder, replacing Apple’s versions.

Log out, and you should see your logo just above the username and password fields. I have not tested against a login window using names and pictures, but it should be fine.

If Apple modifies these files in a future OS X update, you might need to replace them again. I’d recommend packaging them up for easy reinstallation.

Tested with: 10.9

Enabling and configuring NFS

This weekend, I had a need to get NFS working on my Mac. My reasoning? I have a WDTV Live, and found that streaming video through NFS adds less overhead than using (the excellent and free) PS3 Media ServerWestern Digital’s instructions are GUI-heavy and somewhat incomplete, though, so I decided to write my own.

To configure NFS, you’ll need to create a file in /etc/exports:

sudo nano /etc/exports

If the file doesn’t already exist, it should be empty. This file contains your list of shares. Here’s an example of a share from my machine:

/Users/mike/Downloads -ro -network 192.168.1.0 -mask 255.255.255.0

Breaking it down – first, you’ve got the path to the folder you want to share. Next, it’s set so that anyone connecting has read-only access. And finally, the two last sections detail the IP range that’s allowed to access shares on your NFS server. There are many more options you can add – see this for a full listing:

man exports

Add one share per line. Once you’re happy with your exports file, all you need to do is enable NFS:

sudo nfsd enable

This will start the NFS service and keep it running, even after a reboot. You can also start and stop it on an as-needed basis:

sudo nfsd start
sudo nfsd stop

If you make changes to your exports file, you might need to restart the NFS daemon for your changes to take effect:

sudo nfsd restart

If you’d like to verify that your exports file is properly formatted, this will be useful:

nfsd checkexports

And finally, if NFS is running, you can get a listing of all of your shares (‘mounts’ in NFS terminology) via this:

showmount -e

Hope this is useful to someone! If you’d prefer a GUI anyway, NFS Manager looks to be very well done.

Tested with: 10.7, 10.8, 10.9

Page 2 of 2

Powered by WordPress & Theme by Anders Norén