Redirecting mail for the local root user

postfix is Ubuntu’s default mail transfer agent (MTA) and can be configured to deliver mail using a relay host that requires SMTP authentication. Get the necessary packages with the following command:

user@ubuntu:~$ sudo apt-get install postfix bsd-mailx

Begin to configure your postfix installation by choosing satellite system as the general type of configuration. Enter the local machine name as the mail name (eg mycomputer.edafe.org) and the SMTP server address of your email service provider as the SMTP relay host (eg smtp.relayhost.com). Edit the file /etc/postfix/main.cf and add the following:

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

Create the file /etc/postfix/sasl_passwd and make the following entries:

smtp.relayhost.com user:password

Substitute smtp.relayhost.com with the address of the SMTP relay host and user:password with your login details. Continue by executing the following three commands:

user@ubuntu:~$ sudo chown root.root /etc/postfix/sasl_passwd
user@ubuntu:~$ sudo chmod 600 /etc/postfix/sasl_passwd
user@ubuntu:~$ sudo postmap hash:/etc/postfix/sasl_passwd

Instruct postfix to reload its settings with the following command:

user@ubuntu:~$ sudo /etc/init.d/postfix reload

Making changes to the alias table

The aliases table provides a system-wide mechanism to redirect mail for local recipients. Edit the file /etc/aliases to contain the following entries:

postmaster: root
root: localuser
localuser: user@yourdomain.com

The localuser is the system administrator. Substitute user@yourdomain.com with the email address that you would like mail for the root user to be redirected to. Finally, update /etc/aliases.db using the following command:

user@ubuntu:~$ sudo newaliases

Mail for the local root user from now on will automatically be forwarded to user@yourdomain.com , using smtp.relayhost.com as the relay host.
www.postfix.org, help.ubuntu.com

Monitoring hard disks with smartmontools

SMART stands for Self-Monitoring, Analysis and Reporting Technology and is built into most modern hard disks. The smartd daemon is part of smartmontools and monitors a disk’s SMART data for any signs of hardware problems. SMART is available with Parallel and Serial ATA disks, drives appearing as either /dev/hd* or /dev/sd*, respectively. Use the following command to obtain relevant information for your system:

user@ubuntu:~$ df -hl

If required, start by configuring postfix to redirect mail for the local root user. Get the necessary packages with the following command:

user@ubuntu:~$ sudo apt-get install smartmontools bsd-mailx

Configuring smartd

Edit the file /etc/smartd.conf and comment out any lines beginning with DEVICESCAN. If you are using a netbook or a laptop, add the following line for the smartd daemon to monitor the device /dev/sda:

/dev/sda -a -d ata -n standby -o on -S on -m root -M daily -M test

If you are using a desktop or a server, add the following line for the smartd daemon to monitor the device /dev/hda:

/dev/hda -a -d ata -n never -o on -S on -s (L/../../7/04|S/../.././02) -m root -M daily -M test

See man smartd.conf for more information on how to tailor the operation of smartd to your needs.

Starting smartd

Edit the file /etc/default/smartmontools and uncomment the line containing start_smartd=yes. Restart the smartd daemon with the following command:

user@ubuntu:~$ sudo /etc/init.d/smartmontools restart

Verify that the local root user has received a test message from the smartd daemon. From now on, the smartd daemon will monitor the disk and, in the event of impending disk failure, alert the local root user by email.

Installing VMware tools for a Ubuntu guest

VMware Tools is a suite of utilities that enhances the performance of a virtual machine’s guest operating system. Begin by setting up a new virtual machine and installing Ubuntu 6.06 LTS as the guest operating system. Start the virtual machine and log in as a user belonging to the admin group. You are now ready to install VMware Tools. Get the necessary packages with the following command:

user@ubuntu:~$ sudo apt-get install build-essential linux-headers-`uname -r`

Become root and create a symbolic link with the following commands:

user@ubuntu:~$ sudo su
root@ubuntu:/home/user# ln -s /usr/src/linux-headers-`uname -r` /usr/src/linux

On the host, select Virtual Machine > Install VMware Tools… from the VMware Workstation menu. After the guest has mounted the VMware Tools installation virtual CD, change the active directory and copy the VMware Tools archive with the following commands:

root@ubuntu:/home/user# cd /root/
root@ubuntu:~# cp /media/cdrom/VMwareTools-7.6.3-87978.tar.gz /root/

Extract the contents of the archive and then change the active directory with the following commands:

root@ubuntu:~# tar -zxvf VMwareTools-7.6.3-87978.tar.gz
root@ubuntu:~# cd vmware-tools-distrib/

Invoke the install script with the following command, choose to install the binary files in /usr/local/bin and and set your desired screen resolution:

root@ubuntu:~/vmware-tools-distrib# ./vmware-install.pl

Restart your virtual machine.
www.townx.org, www.tech-recipes.com

Time synchronisation with NTP

The NTP protocol allows you to synchronise the clock of your computer with that of dedicated time servers on the Internet. Get the necessary packages with the following command:

user@ubuntu:~$ sudo apt-get install ntp-simple ntpdate

Stop the ntpd daemon and manually synchronise your computer’s clock with the following two commands:

user@ubuntu:~$ sudo /etc/init.d/ntp-server stop
user@ubuntu:~$ sudo ntpdate pool.ntp.org

Modify the file /etc/ntp.conf to read:

# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example
#server ntp.ubuntu.com
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org

Start the ntpd daemon with the following command:

user@ubuntu:~$ sudo /etc/init.d/ntp-server start

After about one minute, query the status of the ntpq daemon with the following command:

user@ubuntu:~$ sudo ntpq -p

You can further increase the accuracy of time synchronisation by using the time servers in your continental or country zone.

Sharing a PostScript printer with CUPS and Samba

Using Samba and CUPS, the Common UNIX Printing System, Ubuntu can easily be configured to provide printing services to a heterogeneous network of Windows, Macintosh and Linux clients.

Printing with CUPS

Get the necessary packages with the following command:

user@ubuntu:~$ sudo apt-get install cupsys foomatic-filters-ppds

Add the user cupsys to the group shadow:

user@ubuntu:~$ sudo adduser cupsys shadow

Get the file cupsd.conf and move it to /etc/cups/:

user@ubuntu:~# sudo wget "https://edafe.org/ubuntu/cups/cupsd.conf"
user@ubuntu:~# sudo mv cupsd.conf /etc/cups/

The downloaded file contains the following changes from the Ubuntu default configuration:

# Default authentication type, when authentication is required...
DefaultEncryption IfRequested
# Restrict access to the admin pages...
<Location /admin>
  Allow @LOCAL
</Location>

Setting these options enables members of the admin group to modify the configuration of the CUPS server from clients sharing the same local network.
Modify the file /etc/cups/cups.d/ports.conf to read:

Port 631
Listen localhost
Listen 192.168.0.123
Listen /var/run/cups/cups.sock

For 192.168.0.123, substitute the IP address of your machine on the local network.
Restart cupsd with the following command:

user@ubuntu:~$ sudo /etc/init.d/cupsys restart

Use a web browser to access http://localhost:631/admin (or http://192.168.0.123:631/admin from another machine on your local network). Go to Administration > Add Printer and begin to set up your printer. When prompted by the system, authenticate yourself as a member of the admin group. If necessary, obtain the correct PostScript Printer Description (PPD) file for your printer model. Print a test page to confirm that your printer is working properly with CUPS.

Making Printers Available over the Network

Install and configure a Samba server and then add the following options to /etc/samba/smb.conf:

[global]
  printing = cups
  load printers = Yes
  printcap name = cups
[printers]
  comment = All Printers
  printable = Yes
  path = /var/spool/samba/print
  browseable = No
  guest ok = Yes
  read only = Yes

Create the directory /var/spool/samba/print and set its permissions with the following two commands:

user@ubuntu:~$ sudo mkdir -p /var/spool/samba/print
user@ubuntu:~$ sudo chmod 1777 /var/spool/samba/print

Restart the Samba server with the following command:

user@ubuntu:~$ sudo /etc/init.d/samba restart

Set your Samba clients to use a printer driver that outputs generic PostScript. Use the the Apple LaserWriter driver on Windows, the Generic PostScript driver on Mac OS X or the Raw Standard driver on Ubuntu.
wiki.ubuntuusers.de, www.samba.org