Tag Archives: Linux

Ubuntu 10.04.2 Live USB

Created USB using Universal-USB-Installer-1.8.3.7.exe and ubuntu-10.04.2-desktop-i386.iso.

Edited /syslinux/text.cfg on USB as follows:
default live
label live
menu label ^Run Ubuntu from this USB
kernel /casper/vmlinuz
append noprompt cdrom-detect/try-usb=true persistent file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz splash --
label live-nvidia
menu label Run Ubuntu (NVidia)
kernel /casper/vmlinuz
append noprompt cdrom-detect/try-usb=true persistent file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz nomodeset --
label live-vesa
menu label Run Ubuntu (VESA)
kernel /casper/vmlinuz
append noprompt cdrom-detect/try-usb=true persistent file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz xforcevesa --
label live-install
menu label ^Install Ubuntu on a Hard Disk
kernel /casper/vmlinuz
append cdrom-detect/try-usb=true file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity initrd=/casper/initrd.lz splash --
label memtest
menu label Test ^memory
kernel /install/mt86plus
label hd
menu label ^Boot from first hard disk
localboot 0x80

 

Enable External Mail on Ubuntu

First, install the appropriate packages:

sudo apt-get install mailutils

Configure Exim for external mail:

sudo dpkg-reconfigure exim4-config

Options:

  • mail sent by smarthost; no local mail
  • FQDN of the system
  • 127.0.0.1  (This will prevent external use of the server to send mail.)
  • localhost; hostname
  • FQDN of the system
  • External (ISP) SMTP server
  • Dial-on-Demand? No
  • Split config? No
  • Root/postmaster recipient: (enter the email address you wish to receive messages sent to root/postmaster on the system).

The root/postmaster recipient is stored in /etc/aliases

The Exim configuration is stored in /etc/exim4/update-exim4.conf.conf.  To apply configuration manually changed in this file, run:

sudo update-exim4.conf
sudo /etc/init.d/exim4 restart

Actual Exim configuration is stored in /var/lib/exim4/config.autogenerated. Don’t edit this file directly.

This was tested on Ubuntu 10.04 (Lucid)

Subversion Installation with Submin, WebDAV, & WebSVN

Installation of Subversion with:

  • Submin for administering subversion users and repositories
  • WebDAV for access to repositories
  • WebSVN for browser access to repositories

Subversion Installation:

aptitude install subversion

Submin Installation:

Add the following repository to /etc/apt/sources.list:

# Submin Repository
deb http://debian.supermind.nl/ current main

Install key for submin repository:

wget -q -O - http://supermind.nl/debian.key | apt-key add -

Update Package List and Install Submin:

aptitude update
aptitude install submin

Create Folder Structure and Files:

mkdir /var/svn
mkdir /var/svn/conf
mkdir /var/svn/repos
touch /var/svn/conf/authz
touch /var/svn/conf/htpasswd
touch /var/svn/conf/submin.conf
touch /var/svn/conf/userproperties.conf
touch /var/svn/conf/apache-svn.alias

Add Submin Admin User

htpasswd -m /var/svn/conf/htpasswd administrator

Configuration File Contents:

# /var/svn/conf/authz
[groups]
submin-admins = administrator
#/var/svn/conf/submin.conf
[svn]
authz_file = /var/svn/conf/authz
userprop_file = /var/svn/conf/userproperties.conf
access_file = /var/svn/conf/htpasswd
repositories = /var/svn/repos

[www]
base_url = /submin
svn_base_url = /svn
trac_base_url =

[backend]
bindir = /usr/share/submin/bin

[generated]
session_salt = d7xOuU8hY9cF1qB/u/
# /var/svn/conf/apache-svn.conf
# Default Apache Submin Configuration

Alias /submin /usr/share/submin/www
<Directory /usr/share/submin/www>
 Options ExecCGI FollowSymLinks
 AddHandler cgi-script py cgi pl
 SetEnv SUBMIN_CONF /var/svn/conf/submin.conf  

 RewriteEngine on
 RewriteBase /submin                           

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.+)$ submin.cgi/$1              

 RewriteRule ^/?$ submin.cgi/                  

 Order Allow,Deny
 Allow from all
</Directory>                                   

# WebDAV Configuration
<Location /svn>
 DAV svn
 SVNParentPath /var/svn/repos
 AuthzSVNAccessFile /var/svn/conf/authz        

 AuthType Basic
 AuthName "Subversion repository"
 AuthUserFile /var/svn/conf/htpasswd
 Require valid-user                            

 Order Allow,Deny
 Allow from all
 Satisfy Any
</Location>                                    

# WebSVN Configuration
Alias /websvn "/var/svn/websvn/"
<Directory "/var/svn/websvn/">
 Options -Indexes -FollowSymLinks
 AllowOverride None                            

 AuthType Basic
 AuthName "Subversion repository"
 AuthUserFile /var/svn/conf/htpasswd
 Require valid-user                            

 Order Allow,Deny
 Allow from all
 Satisfy All
</Directory>

# Disallow web access to directories that don't need it
<Directory "/var/svn/websvn/include">
 Order Deny,Allow
 Deny from All
</Directory>

WebSVN Installation

  • Download WebSVN from http://www.websvn.info/download/.
  • Extract the contents of the archive to /var/svn/ and rename the folder from 'websvn-?.?.?' to just 'websvn‘.
cd /var/svn
wget http://websvn.tigris.org/files/documents/1380/47525/websvn-2.3.1.tar.gz
tar -xvzf websvn-2.3.1.tar.gz
mv websvn-2.3.1 websvn
  • Configure WebSVN with the following file:
<?php
// # /var/svn/websvn/include/config.php

$config->setSvnConfigDir('/etc/subversion');
$config->parentPath('/var/svn/repos');
$config->addTemplatePath($locwebsvnreal.'/templates/calm/');
$config->addTemplatePath($locwebsvnreal.'/templates/BlueGrey/');
$config->addTemplatePath($locwebsvnreal.'/templates/Elegant/');
$config->useAuthenticationFile('/var/svn/conf/authz'); // Global access file
$config->addInlineMimeType('text/plain');
$config->setMinDownloadLevel(2);
$config->useGeshi();
set_time_limit(0);
$config->expandTabsBy(8);

Configure Permissions:

chown -R root:www-data /var/svn
chmod -R ug=rwX,o= /var/svn/conf
chmod g-w /var/svn/conf/apache-svn.conf
chmod -R ug=rwX,o= /var/svn/repos
chmod -R 750 /var/svn/websvn

Configure Apache:

  • Enable Apache Mod Rewrite
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
  • Include the required apache configuration by adding a symlink to the apache conf.d directory
ln -s /var/svn/conf/apache-svn.conf /etc/apache2/conf.d/apache-svn.conf
  • Restart Apache Server
/etc/init.d/apache2 restart

SVN on Ubuntu

Repository Location: /var/lib/submin/svn

/etc/apache2/sites-available/fender-svn.alias

# /submin and /svn from /etc/submin/default-apache-cgi.conf

Alias /submin /usr/share/submin/www
<Directory /usr/share/submin/www>
 Options ExecCGI FollowSymLinks
 AddHandler cgi-script py cgi pl
 SetEnv SUBMIN_CONF /etc/submin/default.conf

 RewriteEngine on
 RewriteBase /submin

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.+)$ submin.cgi/$1

 RewriteRule ^/?$ submin.cgi/

 Order Allow,Deny
 Allow from all
</Directory>
<Location /svn>
 DAV svn
 SVNParentPath /var/lib/submin/svn
 AuthzSVNAccessFile /var/lib/submin/authz

 AuthType Basic
 AuthName "Subversion repository"
 AuthUserFile /var/lib/submin/htpasswd
 Require valid-user

 Order Allow,Deny
 Allow from all
 Satisfy Any
</Location>

Alias /websvn "/var/www/websvn/"
<Directory "/var/www/websvn/">
 Options -Indexes -FollowSymLinks
 AllowOverride None

 AuthType Basic
 AuthName "Subversion repository"
 AuthUserFile /var/lib/submin/htpasswd
 Require valid-user

 Order Allow,Deny
 Allow from all
 Satisfy All
</Directory>

Delay between username and password on SSH login

The delay is likely caused by the server being unable to do a reverse dns lookup for the client machine.  There are a couple of solutions:

  1. Add the client’s hostname and IP address to the server’s /etc/hosts file
  2. Add the PTR record for the client machine to the DNS server.
  3. Add the following line to the server’s /etc/ssh/sshd_config file:
    UseDNS no

NTP Cron Job

If necessary, install ntpdate and test it as follows:

sudo apt-get install ntp ntpdate
sudo ntpdate ca.pool.ntp.org

Then create a daily cron script…

sudo vi /etc/cron.daily/ntpdate.sh

… with the following contents:

#!/bin/bash
ntpdate ca.pool.ntp.org > /dev/null
exit 0

Finally, set the execute bit for the new script and test it!

sudo chmod +x /etc/cron.daily/ntpdate.sh
sudo /etc/cron.daily/ntpdate.sh