Tiny Deathstars of Foulness

The Time Machine service in OS X Server 5 hasn’t changed much from the service in previous operating systems. To enable the Time Machine service, open the Server app, click on Time Machine in the SERVICES sidebar. If the service hasn’t been enabled to date, the ON/OFF switch will be in the OFF position and no “Backup destination” will be shown in the Settings pane. Screen Shot 2015-09-22 at 10.55.26 PM Click on the ON button to see the New Destination screen, used to configure a list of volumes as a destinations for Time Machine backups. The selection volume should be large enough to have space for all of the users that can potentially use the Time Machine service hosted on the server. When you click the Choose button, a list of volumes appears in a standard Finder selection screen. Screen Shot 2015-09-22 at 10.56.28 PM Here, click on the volume to save your backups to in the sidebar. In most cases the Backup destination will be a mass storage device and not the boot volume of the computer. Once selected, click Choose and then if desired, limit the amount of storage on the volume to be used for backups. Click Create and a share called Backups is created and the service will start. Don’t touch anything until the service starts. Once started, add a backup destination at any time using the plus sign button (“+”) and defining another destination. Screen Shot 2015-09-22 at 11.03.43 PM Time Machine Server works via Bonjour. Open the Time Machine System Preference pane and then click on the Select Backup Disk button from a client to see the server in the list of available targets, much as you would do with an Apple Time Capsule. Screen Shot 2015-09-22 at 10.59.23 PM Under the hood, a backup share is creating in the file sharing service. To see the attributes of this share, use the serveradmin command followed by the settings option and then the sharing:sharePointList:_array_id:, so for a path of /Volumes/New Volume 1/Shared Items/Backups use: sudo serveradmin settings sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups The output indicates the options configured for the share, including how locking is handled, guest access disabled, generated identifiers and the protocols the backups share listens as:
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:name = "Backups"
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:smbName = "Backups"
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:nfsExportRecord = _empty_array
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:afpIsGuestAccessEnabled = no
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:isTimeMachineBackup = yes
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:dsAttrTypeNative\:sharepoint_group_id = "F4610C2C-70CD-47CF-A75B-3BAFB26D9EF3"
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:isIndexingEnabled = yes
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:mountedOnPath = "/Volumes/New Volume 1"
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:dsAttrTypeStandard\:GeneratedUID = "FAB13586-2A2A-4DB2-97C7-FDD2D747A0CD"
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:path = "/Volumes/New Volume 1/Shared Items/Backups"
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:smbIsShared = no
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:smbIsGuestAccessEnabled = no
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:afpName = "Backups"
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:smbDirectoryMask = "755"
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:afpIsShared = yes
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:smbCreateMask = "644"
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:ftpName = "Backups"
sharing:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:timeMachineBackupUUID = "844A1C43-61C9-4F99-91DE-C105EA95BD45"
Once the service is running, administrators frequently fill up the target volume. To move data to another location, first stop the service and then move the folder (e.g. using mv). Once moved, use the serveradmin command to send settings to the new backup path. For example, to change the target to /Volumes/bighonkindisk, use the following command: sudo serveradmin settings sharing:sharePointList:_array_id:/Shared Items/Backups:path = "/Volumes/bighonkindisk" Another way to see the share and attributes of the share is through the sharing command: sharing -l Which should show output similar to the following: List of Share Points
name: Backups
path: /Shared Items/Backups
afp: {
name: Backups
shared: 1
guest access: 0
inherit perms: 0
ftp: {
name: Backups
shared: 0
guest access: 0
smb: {
name: Backups
shared: 0
guest access: 0
} There’s also a Bonjour service published that announces to other clients on the same subnet that the server can be used as a backup destination (the same technology used in a Time Capsule). One major update from back in Mavericks Server is the addition of the timemachine service in the severadmin command line interface. To see the command line settings for Time Machine: sudo serveradmin settings timemachine The output shows that share info is displayed as with the sharing service, but you can also see the GUID assigned to each share that is a part of the backup pool of storage:
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:dsAttrTypeStandard\:GeneratedUID = "FAB13586-2A2A-4DB2-97C7-FDD2D747A0CD"
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:smbName = "Backups"
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:afpIsGuestAccessEnabled = no
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:smbDirectoryMask = "755"
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:afpName = "Backups"
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:smbCreateMask = "644"
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:nfsExportRecord = _empty_array
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:path = "/Volumes/New Volume 1/Shared Items/Backups"
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:smbIsGuestAccessEnabled = no
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:name = "Backups"
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:ftpName = "Backups"
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:smbIsShared = no
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:afpIsShared = yes
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:timeMachineBackupUUID = "844A1C43-61C9-4F99-91DE-C105EA95BD45"
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:isTimeMachineBackup = yes
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:backupQuota = 0
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:dsAttrTypeNative\:sharepoint_group_id = "F4610C2C-70CD-47CF-A75B-3BAFB26D9EF3"
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:isIndexingEnabled = yes
timemachine:sharePointList:_array_id:/Volumes/New Volume 1/Shared Items/Backups:mountedOnPath = "/Volumes/New Volume 1" Additionally you can also query for the service to verify it’s running using full status: sudo serveradmin fullstatus timemachine Which outputs something similar to the following: timemachine:command = "getState"
timemachine:state = "RUNNING"
While I found plenty to ramble on about in this article, Mass deployment is still the same, as is client side configuration.

September 23rd, 2015

Posted In: Mac OS X Server, Time Machine

Tags: , , , , , , , , ,

In OS X, we don’t see file extensions by default. However, in a number of environments it’s very useful to have them. To see them in the Finder, send a boolean AppleShowAllExtensions key to the NSGlobalDomain as True, then restart the Finder. defaults write NSGlobalDomain AppleShowAllExtensions -bool true; killall Finder To change back to not seeing extensions: defaults write NSGlobalDomain AppleShowAllExtensions -bool false; killall Finder

September 28th, 2013

Posted In: Mac OS X, Mac OS X Server, Mac Security, Mass Deployment

Tags: , , , , , ,

Here’s the thing: I’m not very good with computers. So to keep me from hurting myself too badly, I need the simplest interface available that allows me to run multiple applications. But most of the command keys shouldn’t work in this interface and I should only have Finder, file and Help menus. Luckily for my poor MacBook Airs, Apple thought of people like me when they wrote the Finder and invented something called Simple Finder which makes OS X even simpler than it is by default to use. To enable Simple Finder, just go to Parental controls, enable controls for a user and then check the box for Simple Finder. Or, if you have an entire population of users like me, who simply can’t be trusted with a full operating environment, you can send the InterfaceLevel key with the contents of simple (easy to remember for those of us who resemble said key) to and restart our friendly neighborhood Finder: defaults write InterfaceLevel simple; killall Finder Come to think of it, maybe I’m not so awful. Let’s say I want to turn that whole Simple Finder thing right back off. Well, all we have to do is delete that key we created and then restart the Finder: defaults delete InterfaceLevel; killall Finder Actually, I am terrible with these things. So much so that it’s not appropriate for me to use a computer. Therefore, just take it away. I’ll be better off using that Samsung with Windows 8 for awhile. At least there, I won’t be able to get any of my apps open or find any of the administrative tools that could damage the computer!

May 17th, 2013

Posted In: Mac OS X, Mac OS X Server, Mac Security, Mass Deployment

Tags: , , , , , , , , ,

Of the new features in Mountain Lion, one I have already started to love is the fact that when you’re copying folders, you see a status in the Finder screen that lists the folders. This allows me to do a bunch of Finder level copies and rather than tile out the screens that I’m using to copy, I can just watch them from the parent folder. Sometimes it’s the little things…

July 25th, 2012

Posted In: Mac OS X, Mac OS X Server, Xsan

Tags: , , , , , , ,

One of the new features that was introduced in OS X Lion is automatic application termination. This feature stops any applications that haven’t been used for awhile and then when you start the app back up, it fires up using the saved application state. But some processes shouldn’t be stopped. I’ve recently run into 2 cases where I needed to disable automatic termination. To do so is pretty straight forward: defaults write -g NSDisableAutomaticTermination -bool TRUE Once run, read the key back from the global defaults domain to verify it was run correctly: defaults read -g NSDisableAutomaticTermination The output should just be a 1. Provided it’s correct, now test that applications no longer automatically terminate. Provided they don’t then the setting can be left, or if your issue persists then you can just delete the key: defaults delete NSDisableAutomaticTermination While you shouldn’t have to restart for changes to activate, I do. Basically, at the relaunch of the app the changes should be active. Applications with network sockets should never stop taking resources; however, applications without network sockets that might call on them from time to time could be impacted. You can also look at doing per-application, as an example with Terminal: defaults write NSDisableAutomaticTermination -bool true Or Apple Configurator: defaults write NSDisableAutomaticTermination -bool true

June 3rd, 2012

Posted In: Mac OS X, Mac OS X Server, Mac Security, Mass Deployment

Tags: , , , , , , , ,

defaults write QuitMenuItem -bool YESYou
You can get a Quit menu for the Finder by editing the, which we can do here using the defaults command:
defaults write QuitMenuItem -bool YES
Now you can run a command to kill the Finder:
killall Finder
Then when it comes back to life you should see the new menu item.

December 20th, 2009

Posted In: Mac OS X

Tags: , ,

One of the nice little things about Cocktail is that it can hide things. Useful for certain types of projects. For the Finder specifically, Cocktail can hide: Under the Finder menu:
  • Preferences
  • Empty Trash
  • Quit Finder
File Menu:
  • Eject
  • Burn to Disc
View menu:
  • Customize Toolbar
  • Show View Options
Go menu:
  • Go to Folder
  • Connect to Server
Apple menu:
  • Restart
  • Shut Down
  • Log out

November 8th, 2009

Posted In: Mac OS X, Mac Security

Tags: ,

So I had a request that involved something I had never actually thought or bothered to do: customize the finder icon in the dock…  I figured it would just be an image and therefore that it couldn’t actually be that difficult.  And I was correct.  Remarkably, the icon is actually called finder.png (you may have noticed that smaller iPhone and OS X images are almost always png files these days): /System/Library/CoreServices/
So I renamed it to finder.old using this command:
sudo mv /System/Library/CoreServices/
Then grabbed a new png icon and threw it in the same place with the same name (in this case the logo was called UGA.png before and was on my desktop):
sudo mv ~/Desktop/UGA.png /System/Library/CoreServices/
Then I restarted the Finder.  Well, no love – the icon didn’t replace the one in my dock.  So I restarted my dock.  Still no love.  So I restarted my computer.  Viola, as you can see below, it worked like a charm!
Custom Finder Icon in Dock

Custom Finder Icon in Dock

Next, I decided to start looking at what else I could do in here.  First, the background of the dock.  There are scurve-m.png, scurve-sm.png, scruve-xl.png and scurve-l.png.  As you resize your dock it will replace these pictures as needed.  So, if you take one, edit it (in this case I made mine black with 10% transparency) then it will change the color of the dock next time you restart, or use the following command: killall Dock
Changing the Color of the Dock

Changing the Color of the Dock

Additionally, there’s the trash icons trashempty.png and trashfull.png and the Dashboard.png files.  You’ll also notice some files starting with the word indicator – these are the little lights that appear under an icon when the application that the icon represents is open.  I think these are perfect as-is, so I didn’t bother to customize them.  There’s also a bunch of other images in here, like the ones that create the background you see when you hover over an icon and the ones that generate the QuickLook views.   Finally, I was going to make a little application to allow you to change all this stuff around.  But, it turns out that the uber-smart cats at Panic (makers of Transmit) beat me to the punch with Candy Bar.

December 20th, 2008

Posted In: Mac OS X

Tags: , , , ,

CD into the /System/Library/CoreServices/ directory. Su and then run ./Finder. You’ll see an error, the system will complain, but then, automatically you’ll see a Finder Window with Root. Might crash the Finder after a few minutes though, so be careful…

April 19th, 2008

Posted In: Mac OS X, Mac Security

Tags: ,

A symbolic link is *not* an alias. A symlink (symbolic link) is in the filesystem so all of the layers of the OS can use symlinks. This includes Carbon, Cocoa, Java, and BSD apps. Alias files are Finder-specific concept. Aliases are not used by the rest of the system. Only the Finder deals with aliases. At the Finder level, aliases and symlinks are similar, but symlinks are far more versatile and used in pretty much every flavor of *nix.

August 17th, 2005

Posted In: Mac OS X, Mac OS X Server

Tags: , , , , ,