Run as root only

To make sure that a script will be run by root only:


if [ `id -u` != 0 ]; then
  echo "Permission denied, must be root"

# Do the thing...

Authenticate Users

This snippet could authenticate users using their /etc/passwd or /etc/shadow entry. May have to run this with higher than normal privilege:

#!/usr/bin/env perl

print "Username: ";
chomp($uname = <stdin>);

$pwd = (getpwnam($uname))[1]; # get the user's pwd
die "invalid usern" unless defined $pwd and length $pwd;
$salt = substr($pwd, 0, 2);

system "stty -echo";
print "Password: ";
chomp($word = <stdin>);
print "n";
system "stty echo";

if (crypt($word, $salt) ne $pwd) {
    die "Sorry...n";
} else {
    print "okn";

How to Burn CDs

For accomplishing other tasks such as copying CDs, etc., try carefully reading the cdrecord manual page and, if necessary, consulting the canonical CD recording FAQ at


Creating a data CD:

Step 1: Make a directory to contain the files you want to place on the the CD. “mkdir /image/userdir/” is the standard method.

Step 2: Copy the files from wherever they are to the directory you just created.

Step 3: Create the ISO9660 image that will be burned on the CD. You do this using the mkisofs command. An example command is:

csh> cd /image/userdir/
csh> mkisofs -o /image/burn-image/.iso
-l -R -L -V "" -P "" -p "" -A "" .

-o: the name of the file that will contain the
-l: use long file names
-R: use Rock Ridge extensions. This means
     that long filenames will be used, file
     uid/gids and permissions will be preserved,
     symbolic links will be included, etc. In
     other words, the CD will try hard to
     emulate a Unix file system.
[-r: This is like the -R option, but file uid/gid
are set to 0, files will be readable by anyone
and all write permissions will be removed.
Use this switch if you anticipate needing to
read the CD in an environment where your
uid/gid do not exist. E.g., if you are sending
to CD to another institution.]

-L: Allow file names beginning with '.'.
-V, -P, -p, -A: See the mkisofs man page.

The final argument (in the example '.') is the
name of the top-level directory containing
file data.

See the mkisofs manual page for further details.

Read More

Disable single user mode using lilo

In your LILO configuration section, write something like:

image = /vmlinuz
        label = Linux
        root = /dev/hda1
        password = wingedlizard

Then chmod this file 600 (so nobody but root can read it) and re-run /sbin/lilo.

The “restricted” keyword means that LILO will stop and ask for a password if you try to boot this kernel with _any_ keywords such as “1” or “single” or “init=/bin/bash”. A password won’t be required during normal (no-added-keywords) boots.

401K and IRA Limits

The maximum pre-tax amount one can contribute each year to 401(k), 403(b), and 457 plans as determined by the IRS:

         Year        Age<50        Age>50
        2005        $14,000          $18,000
        2006        $15,000          $20,000

After 2006, the maximum pre-tax contribution limit is indexed in $500 incrememnts for inflation.

Traditional and Roth IRA Limits:

         Year        Age<50        Age>50
        2005        $4,000            $4,500
        2006        $4,000            $5,000
        2007        $4,000            $5,000
        2008        $5,000            $6,000

The contribution limits presented above for traditional and Roth IRA are scheduled to expire Dec 31, 2010 unless legislation is enacted to extend them.