System Administrator Power Tools and Miscellany (SAPTAM)

A collection of useful mass-administration utilities.

Copyright 2006, Matt T. Proud

What is SAPTAM?

SAPTAM is a collection of utilities that I have developed over the past year that have been particularly useful with mass-system administration on the level of 100 machines or more.

They have been built in the context of a Ubuntu/Debian environment, wherein the tasks of automation, CD remastering, package development, preseeding, and a few other minor tasks have existed.

Whereof SAPTAM consist?


This package consists of utilities that I have developed to assist in my personal development of Debian packages in a subversion build environment. While there exists svn-buildpackage, I have failed to see the real applicability of this tool to my development, so I have written these items.

This component is still in development.


This package is a powerful utility that allows system administrators to automate the configuration of shell environments through the use of enumerable .d directories à la Gentoo's /etc/env.d system. For those unfamiliar with Gentoo's system, this utility scans the contents of a predetermined directory, usually /etc/environment.d and builds a file /etc/environment-supplment, which the administrator configures to be sourced by the shell initialization files in /etc.

Like the nomenclature used in SysV init script number, items are loaded per their prefixed numbers.

One new feature that this offers over Gentoo's is that it can scan a personal ~/.environment.d location and build a personal ~/.environment-supplement.

The real usefulness comes in when the administrator wants to support highly-customized environments and wants to avoid making numerous edits to shell initialization files for custom paths, preloads, etc. Consider the labor costs of manual modification on over ten machines.

A stable release has been made, and development is ongoing.


Take the same methodology of the environment-configurator and apply it to the situation of building a dynamic firewall policy. This item scans /etc/firewall.d and builds an SysV init.d- and Upstart-compatible firewall initialization and restart script.

A stable release has been made, and development is ongoing.


Anecdotally I have heard that What's New and Tip of the Day notifications are extremely annoying. I tend to agree in part with these assessments, but I digress with an non-instrusive implementation.

The notifications-handler is just that: a non-instrusive means of notifying users of information with exposure insurance. It works similarly to aforementioned configurators in that it polls .d directories for text files, but it takes text files that have yet to be displayed to the user and displays them during the login phase of starting a shell. It is, in essence, a text-based splash screen that contains useful technical information.

This mechanism beats sending mass e-mail. The framework ensures that persons who come into the organization after the notification was sent via e-mail see the text. Also, it removes the need on the part of the person to save the would-be notification e-mails. The user just invokes notifications-handler --display-all | less to see old items. Thus information is persistent.

Yes, this is not useful for non-technical users, and that is the point of its development. It beats keeping a wiki in certain circumstances, for there is no way to ensure that users who read a page once would check on the page again after it undergoes a significant modification.

How is this information persistence ensured exactly?

The nomenclature for the text files that are displayed is XXXXnameYYYY, where XXXX is the priority and YYYY is the revision number. If you have 0000rules0000 that outlines basic rules of the house and it undergoes an update, you can just update the name to 0000rules0001 and the stamping system will display the next iteration on next logon.

I have even been considering including an optional mechanism that will prompt the user for a Yes/No response to determine the level of message comprehension.

This is under development.

Where is the code?

A few formal releases have been made, but the most useful place to look is in the subversion tree. See SAPTAM's Sourceforge page.

Please read and respect the licenses. The code is open, but there are small common-courtesy stipulations.

All content is the property of Matt T. Proud, except where noted. Please consult the licenses of each item for more information. Concepts may not be duplicated, replicated, or derived without adhering the licenses of the individual items. Please respect intellectual property rights. Logo