<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BigSmoke &#187; Debian</title>
	<atom:link href="http://blog.bigsmoke.us/tag/debian/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.bigsmoke.us</link>
	<description>Smokes your problems, coughs fresh air.</description>
	<lastBuildDate>Sat, 04 Feb 2012 18:03:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Executing system commands from PHP with SUID executable.</title>
		<link>http://blog.bigsmoke.us/2011/02/02/executing-system-commands-from-php-with-suid-executable</link>
		<comments>http://blog.bigsmoke.us/2011/02/02/executing-system-commands-from-php-with-suid-executable#comments</comments>
		<pubDate>Wed, 02 Feb 2011 14:05:05 +0000</pubDate>
		<dc:creator>halfgaar</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[sudo]]></category>
		<category><![CDATA[suid]]></category>

		<guid isPermaLink="false">http://blog.bigsmoke.us/?p=1866</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>If you want to execute system commands from something like PHP, you need a SUID executable which you can call from your PHP scripts. This is such a script. It could be extended to support parameters for the commands you want to execute, but that would be an enormous security risk, because then anybody can execute any command. If you need something as flexible as that, you need to think about adding some kind of security restrictions, like a list of allowed commands.</p>
<p>When writing this, it occurred to me how unnecessary this all is. I will explain below. First, I will describe the old way.</p>
<p>Here is the c source code, as written for our backup script, bsbackup.sh:</p>
<p><pre class="php"><span style="color: #808080; font-style: italic;">// Wrapper for the bsbackup.sh shell script, to be able to run it as root when</span>
<span style="color: #808080; font-style: italic;">// started from a webserver, for example. Set the resulting executable to SUID</span>
<span style="color: #808080; font-style: italic;">// root.</span>
&nbsp;
<span style="color: #808080; font-style: italic;">#include &lt;stdlib.h&gt;</span>
<span style="color: #808080; font-style: italic;">#include &lt;stdio.h&gt;</span>
<span style="color: #808080; font-style: italic;">#include &lt;unistd.h&gt;</span>
<span style="color: #808080; font-style: italic;">#include &lt;errno.h&gt;</span>
<span style="color: #808080; font-style: italic;">#include &lt;error.h&gt;</span>
&nbsp;
int main<span style="color: #66cc66;">&#40;</span>int argc, char *argv<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>, char *envp<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
    int set_uid_result;
    int effective_user_id;
    int execute_script_error;
    char* script;
&nbsp;
    effective_user_id = geteuid<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #808080; font-style: italic;">// Set real and effective user ID</span>
    set_uid_result = setreuid<span style="color: #66cc66;">&#40;</span>effective_user_id, effective_user_id<span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>set_uid_result != <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
        <a href="http://www.php.net/printf"><span style="color: #000066;">printf</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Failed to set user id<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">1</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    script = <span style="color: #ff0000;">&quot;/usr/local/sbin/bsbackup.sh&quot;</span>;
&nbsp;
    <span style="color: #808080; font-style: italic;">// This does not return on success.</span>
    execve<span style="color: #66cc66;">&#40;</span>script, argv, envp<span style="color: #66cc66;">&#41;</span>;
    execute_script_error = errno;
&nbsp;
    <span style="color: #808080; font-style: italic;">// Show a fancy error message.</span>
    error<span style="color: #66cc66;">&#40;</span>execute_script_error, execute_script_error, script<span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #808080; font-style: italic;">// Shouldn't be necceary, but you never know.</span>
    <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">1</span>;
<span style="color: #66cc66;">&#125;</span></pre></p>
<p>To compile:</p>
<p><pre class="php">gcc -o bsbackup bsbackup.c</pre></p>
<p>You can then run this inside PHP:</p>
<p><pre class="php"><span style="color: #808080; font-style: italic;">// The 2&gt;&amp;1 makes all error messages appear on stdout, for easy capturing.</span>
<a href="http://www.php.net/passthru"><span style="color: #000066;">passthru</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'/usr/local/sbin/bsbackup usb_backup 2&gt;&amp;1'</span><span style="color: #66cc66;">&#41;</span>;</pre></p>
<p>As I said, when writing this, it all became very clear to me that it is quite useless. One can also install sudo, run visudo and put this in (assuming your webserver runs as www-data, like on (Debian and Ubuntu):</p>
<p><pre class="php">www-data ALL = NOPASSWD: /usr/local/sbin/bsbackup.sh</pre></p>
<p>Then in PHP, just run this:</p>
<p><pre class="php"><a href="http://www.php.net/passthru"><span style="color: #000066;">passthru</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'sudo /usr/local/sbin/bsbackup.sh usb_backup 2&gt;&amp;1'</span><span style="color: #66cc66;">&#41;</span>;</pre></p>
<p>I haven&#8217;t tested whether specifying the parameters after the script in the passthru actually works, but I think so. If not, you can just write a wrapper script around the command you&#8217;re going to execute. </p>
<p>See what you like best <img src='http://blog.bigsmoke.us/wp-factory/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bigsmoke.us/2011/02/02/executing-system-commands-from-php-with-suid-executable/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Allowing apache to set Nagios cmd file</title>
		<link>http://blog.bigsmoke.us/2010/12/28/allowing-apache-to-set-nagios-cmd-file</link>
		<comments>http://blog.bigsmoke.us/2010/12/28/allowing-apache-to-set-nagios-cmd-file#comments</comments>
		<pubDate>Tue, 28 Dec 2010 21:13:19 +0000</pubDate>
		<dc:creator>halfgaar</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[nagios]]></category>

		<guid isPermaLink="false">http://blog.bigsmoke.us/?p=1791</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>On debian, to prevent:</p>
<blockquote><p>Error: Could not stat() command file ‘/var/lib/nagios3/rw/nagios.cmd’!</p></blockquote>
<p>Do:</p>
<p><pre class="php">/etc/init.d/nagios3 stop
dpkg-statoverride --update --add nagios www-data <span style="color: #cc66cc;">2710</span> /<span style="color: #000000; font-weight: bold;">var</span>/lib/nagios3/rw
dpkg-statoverride --update --add nagios nagios <span style="color: #cc66cc;">751</span> /<span style="color: #000000; font-weight: bold;">var</span>/lib/nagios3
/etc/init.d/nagios3 start</pre></p>
<p><a href="http://lars-schenk.com/nagios-commands-via-web-interface-on-debian/446">source</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bigsmoke.us/2010/12/28/allowing-apache-to-set-nagios-cmd-file/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disabling exim port 25 listening when zimbra is installed</title>
		<link>http://blog.bigsmoke.us/2010/12/12/disabling-exim-port-25-listening-when-zimbra-is-installed</link>
		<comments>http://blog.bigsmoke.us/2010/12/12/disabling-exim-port-25-listening-when-zimbra-is-installed#comments</comments>
		<pubDate>Sun, 12 Dec 2010 17:36:55 +0000</pubDate>
		<dc:creator>halfgaar</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[exim]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[zimbra]]></category>

		<guid isPermaLink="false">http://blog.bigsmoke.us/?p=1765</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>When you&#8217;re installing zimbra in an Ubuntu or Debian machine, it seems it installs the MTA in such a way that command line tools like mail and such don&#8217;t work. But when you install exim, it conflicts with the postfix in Zimbra. </p>
<p>To fix it, you can install exim4, but configure this line in /etc/default/exim4:</p>
<p><pre class="php">QUEUERUNNER=<span style="color: #ff0000;">'queueonly'</span></pre></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bigsmoke.us/2010/12/12/disabling-exim-port-25-listening-when-zimbra-is-installed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>grml</title>
		<link>http://blog.bigsmoke.us/2010/12/08/grml</link>
		<comments>http://blog.bigsmoke.us/2010/12/08/grml#comments</comments>
		<pubDate>Wed, 08 Dec 2010 20:22:16 +0000</pubDate>
		<dc:creator>Rowan Rodrik</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[LiveCD]]></category>

		<guid isPermaLink="false">http://blog.bigsmoke.us/?p=1509</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://grml.org/">grml</a> seems like an interesting Debian-based Linux Live CD. It seems interesting because “[it] includes a collection of GNU/Linux software especially for system administrators and users of texttools.”</p>]]></content:encoded>
			<wfw:commentRss>http://blog.bigsmoke.us/2010/12/08/grml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Find all manually installed packages on a Debian system</title>
		<link>http://blog.bigsmoke.us/2010/12/05/find-all-manually-installed-packages-on-a-debian-system</link>
		<comments>http://blog.bigsmoke.us/2010/12/05/find-all-manually-installed-packages-on-a-debian-system#comments</comments>
		<pubDate>Sun, 05 Dec 2010 14:02:21 +0000</pubDate>
		<dc:creator>halfgaar</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[aptitude]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[packages]]></category>

		<guid isPermaLink="false">http://blog.bigsmoke.us/?p=1729</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>
This should find all manually installed packages on a Debian system:
</p>

<pre class="php">aptitude search <span style="color: #ff0000;">'~i!~E'</span> | grep -v <span style="color: #ff0000;">&quot;i A&quot;</span> | cut -d <span style="color: #ff0000;">&quot; &quot;</span> -f <span style="color: #cc66cc;">4</span></pre>

]]></content:encoded>
			<wfw:commentRss>http://blog.bigsmoke.us/2010/12/05/find-all-manually-installed-packages-on-a-debian-system/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making a Debian Squeeze machine into a Xen virtual machine host</title>
		<link>http://blog.bigsmoke.us/2010/11/07/making-a-debian-squeeze-machine-into-a-xen-virtual-machine-host</link>
		<comments>http://blog.bigsmoke.us/2010/11/07/making-a-debian-squeeze-machine-into-a-xen-virtual-machine-host#comments</comments>
		<pubDate>Sun, 07 Nov 2010 18:20:42 +0000</pubDate>
		<dc:creator>halfgaar</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[lenny]]></category>
		<category><![CDATA[squeeze]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://blog.bigsmoke.us/?p=1656</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>
My attempts to get Xen working right on Debian stable (Lenny) were not really successful. Xen has had some interesting developments and the version in Lenny is just too old. Plus, the debian bootstrap scripts used to create images don&#8217;t support Ubuntu Maverick&#8230; Squeeze (testing) has the newest Xen and deboostrap, so that&#8217;s cool. I used the AMD64 architecture.
</p>

<p>
First install Xen:
</p>

<pre class="php">aptitude -P install xen-hypervisor<span style="color: #cc66cc;">-4.0</span>-amd64 linux-image-xen-amd64 xen-tools</pre>

<p>
Debian Sqeeuze uses Grub 2, and the defaults are wrong for Xen. The Xen hypervisor (and not just a Xen-ready kernel!) should be the first entry, so do this:
</p>

<pre class="php">mv -i /etc/grub.d/10_linux /etc/grub.d/50_linux</pre>

<p>
Then, disable the OS prober, so that you don&#8217;t get entries for each virtual machine you install on a LVM.
</p>

<pre class="bash"><span style="color: #000066;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span> &gt;&gt; /etc/default/grub
<span style="color: #000066;">echo</span> <span style="color: #ff0000;">&quot;# Disable OS prober to prevent virtual machines on logical volumes from appearing in the boot menu.&quot;</span> &gt;&gt; /etc/default/grub
<span style="color: #000066;">echo</span> <span style="color: #ff0000;">&quot;GRUB_DISABLE_OS_PROBER=true&quot;</span> &gt;&gt; /etc/default/grub
update-grub2</pre>

<p>
Per default (on Debian anyway), Xen tries to save-state the VM&#8217;s upon shutdown. I&#8217;ve had some problems with that, so I set these params in /etc/default/xendomains to make sure they get shut down normally:
</p>

<pre class="bash"><span style="color: #0000ff;">XENDOMAINS_RESTORE=</span>false
<span style="color: #0000ff;">XENDOMAINS_SAVE=</span><span style="color: #ff0000;">&quot;&quot;</span></pre>

<p>
In /etc/xen/xend-config.sxp I enabled the network bridge (change an existing or commented-out line for this). I also set some other useful params (for me):
</p>

<pre class="php"><span style="color: #66cc66;">&#40;</span>network-script network-bridge<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>dom0-min-mem <span style="color: #cc66cc;">196</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>dom0-cpus <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>vnc-listen <span style="color: #ff0000;">'127.0.0.1'</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>vncpasswd <span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#41;</span></pre>

<p>
Then I edited /etc/xen-tools/xen-tools.conf. This config contains default values the xen-create-image script will use. Most important are:
</p>

<pre class="php"><span style="color: #808080; font-style: italic;"># Virtual machine disks are created as logical volumes in volume group universe (LVM storage is much faster than file)</span>
lvm = universe
&nbsp;
install-method = debootstrap
&nbsp;
size   = 50Gb      <span style="color: #808080; font-style: italic;"># Disk image size.</span>
memory = 512Mb    <span style="color: #808080; font-style: italic;"># Memory size</span>
swap   = 2Gb    <span style="color: #808080; font-style: italic;"># Swap size</span>
fs     = ext3     <span style="color: #808080; font-style: italic;"># use the EXT3 filesystem for the disk image.</span>
dist   = `xt-guess-suite-and-mirror --suite` <span style="color: #808080; font-style: italic;"># Default distribution to install.</span>
&nbsp;
gateway    = x.x.x.x
netmask    = <span style="color: #cc66cc;">255.255</span><span style="color: #cc66cc;">.255</span><span style="color: #cc66cc;">.0</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># When creating an image, interactively setup root password</span>
passwd = <span style="color: #cc66cc;">1</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># I think this option was this per default, but it doesn't hurt to mention.</span>
mirror = `xt-guess-suite-and-mirror --mirror`
&nbsp;
mirror_maverick = http:<span style="color: #808080; font-style: italic;">//nl.archive.ubuntu.com/ubuntu/</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Ext3 had some weird settings per default, like noatime. I don't want that, so I changed it to 'defaults'.</span>
ext3_options     = defaults
ext2_options     = defaults
xfs_options      = defaults
reiserfs_options = defaults
btrfs_options    = defaults
&nbsp;
<span style="color: #808080; font-style: italic;"># let xen-create-image use pygrub, so that the grub from the VM is used, which means you no longer need to store kernels outside the VM's. Keeps this very flexible.</span>
pygrub=<span style="color: #cc66cc;">1</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># scsi is specified because when creating maverick for instance, the xvda disk that is used can't be accessed. </span>
<span style="color: #808080; font-style: italic;"># The scsi flag causes names like sda to be used.</span>
scsi=<span style="color: #cc66cc;">1</span></pre>

<p>
I created the following script to easily let me make VM&#8217;s:
</p>

<pre class="php"><span style="color: #808080; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Script to easily create VM's. Hardy, maverick and Lenny are tested</span>
&nbsp;
dist=$<span style="color: #cc66cc;">1</span>
hostname=$<span style="color: #cc66cc;">2</span>
ip=$<span style="color: #cc66cc;">3</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#91;</span> -z <span style="color: #ff0000;">&quot;$hostname&quot;</span> -o -z <span style="color: #ff0000;">&quot;$ip&quot;</span> -o -z <span style="color: #ff0000;">&quot;$dist&quot;</span> <span style="color: #66cc66;">&#93;</span>; then
  <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">&quot;No dist, hostname or ip specified&quot;</span>
  <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">&quot;&quot;</span>
  <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">&quot;Usage: $0 dist hostname ip&quot;</span>
  <a href="http://www.php.net/exit"><span style="color: #000066;">exit</span></a> <span style="color: #cc66cc;">1</span>
fi
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#91;</span> <span style="color: #ff0000;">&quot;$dist&quot;</span> == <span style="color: #ff0000;">&quot;hardy&quot;</span> <span style="color: #66cc66;">&#93;</span>; then
  serial_device=<span style="color: #ff0000;">&quot;--serial_device xvc0&quot;</span>
fi
&nbsp;
xen-create-image <span style="color: #0000ff;">$serial_device</span> --hostname <span style="color: #0000ff;">$hostname</span> --ip <span style="color: #0000ff;">$ip</span> --vcpus <span style="color: #cc66cc;">2</span> --pygrub --dist <span style="color: #0000ff;">$dist</span></pre>

<p>
At this point, you can reboot (well, you could earlier, but well&#8230;).
</p>

<p>
Usage of the script should be simple. When creating a VM named &#8216;machinex&#8217;, start it and attach console:
</p>

<pre class="php">xm create -c /etc/xen/machinex.cfg</pre>

<p>
You can escape the console with ctrl-]. Place a symlink in /etc/xen/auto to start the VM on boot.
</p>

<p>
As a sidenote: when creating a lenny, the script installs a xen kernel in the VM. When installing maverick, it installs a normal kernel. Normals kernels since version 2.6.32 (I believe) support pv_ops, meaning they can run on hypervisors like Xen&#8217;s.
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.bigsmoke.us/2010/11/07/making-a-debian-squeeze-machine-into-a-xen-virtual-machine-host/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configuring a Debian exim server for internet delivery</title>
		<link>http://blog.bigsmoke.us/2010/07/20/configuring-a-debian-exim-server-for-internet-delivery</link>
		<comments>http://blog.bigsmoke.us/2010/07/20/configuring-a-debian-exim-server-for-internet-delivery#comments</comments>
		<pubDate>Tue, 20 Jul 2010 09:25:35 +0000</pubDate>
		<dc:creator>halfgaar</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[exim]]></category>

		<guid isPermaLink="false">http://blog.bigsmoke.us/?p=1515</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>
I wanted an Exim server which could send mail on its own without the use of another SMTP server.
</p>

<p>
First see <a href="http://blog.bigsmoke.us/2008/08/03/configuring-a-debian-satellite-exim-server">this</a> for some general explantion. 
</p>

<p>
I used this config file:
</p>

<pre class="php"><span style="color: #808080; font-style: italic;"># /etc/exim4/update-exim4.conf.conf</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Edit this file and /etc/mailname by hand and execute update-exim4.conf</span>
<span style="color: #808080; font-style: italic;"># yourself or use 'dpkg-reconfigure exim4-config'</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Please note that this is _not_ a dpkg-conffile and that automatic changes</span>
<span style="color: #808080; font-style: italic;"># to this file might happen. The code handling this will honor your local</span>
<span style="color: #808080; font-style: italic;"># changes, so this is usually fine, but will break local schemes that mess</span>
<span style="color: #808080; font-style: italic;"># around with multiple versions of the file.</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># update-exim4.conf uses this file to determine variable values to generate</span>
<span style="color: #808080; font-style: italic;"># exim configuration macros for the configuration file.</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Most settings found in here do have corresponding questions in the</span>
<span style="color: #808080; font-style: italic;"># Debconf configuration, but not all of them.</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># This is a Debian specific file</span>
&nbsp;
dc_eximconfig_configtype=<span style="color: #ff0000;">'internet'</span>
dc_other_hostnames=<span style="color: #ff0000;">'existingdomain.com'</span>
dc_local_interfaces=<span style="color: #ff0000;">'127.0.0.1'</span>
dc_readhost=<span style="color: #ff0000;">''</span>
dc_relay_domains=<span style="color: #ff0000;">''</span>
dc_minimaldns=<span style="color: #ff0000;">'false'</span>
dc_relay_nets=<span style="color: #ff0000;">''</span>
dc_smarthost=<span style="color: #ff0000;">''</span>
CFILEMODE=<span style="color: #ff0000;">'644'</span>
dc_use_split_config=<span style="color: #ff0000;">'false'</span>
dc_hide_mailname=<span style="color: #ff0000;">''</span>
dc_mailname_in_oh=<span style="color: #ff0000;">'true'</span>
dc_localdelivery=<span style="color: #ff0000;">'mail_spool'</span></pre>

<p>
Also remember to put that existingdomain.com in /etc/mailname.
</p>]]></content:encoded>
			<wfw:commentRss>http://blog.bigsmoke.us/2010/07/20/configuring-a-debian-exim-server-for-internet-delivery/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finnix Linux Live CD</title>
		<link>http://blog.bigsmoke.us/2010/06/29/finnix</link>
		<comments>http://blog.bigsmoke.us/2010/06/29/finnix#comments</comments>
		<pubDate>Tue, 29 Jun 2010 10:27:07 +0000</pubDate>
		<dc:creator>Rowan Rodrik</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Live CD]]></category>

		<guid isPermaLink="false">http://blog.bigsmoke.us/?p=1504</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.finnix.org/">Finnix</a> is another Linux Live CD. Like <a href="http://blog.bigsmoke.us/2010/06/29/systemrescuecd">SystemRescueCD</a>, it&#8217;s <q>not intended for the average desktop user, and does not include any desktops, productivity tools, or sound support, in order to keep distribution size low.</q> But Finnix is based on Debian, not Gentoo.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.bigsmoke.us/2010/06/29/finnix/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Damn Small Linux</title>
		<link>http://blog.bigsmoke.us/2010/06/29/damn-small-linux</link>
		<comments>http://blog.bigsmoke.us/2010/06/29/damn-small-linux#comments</comments>
		<pubDate>Tue, 29 Jun 2010 10:15:31 +0000</pubDate>
		<dc:creator>Rowan Rodrik</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[DSL]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Live CD]]></category>

		<guid isPermaLink="false">http://blog.bigsmoke.us/?p=1499</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.damnsmalllinux.org/">Damn Small Linux</a> (or DSL) is another Linux distribution that deserves a closer look someday. It&#8217;s light enough that it should even run on a 486DX with 16MB of RAM and it can run fully in RAM with only 128MB of RAM.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.bigsmoke.us/2010/06/29/damn-small-linux/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RubyGems nuisances</title>
		<link>http://blog.bigsmoke.us/2010/06/21/rubygems</link>
		<comments>http://blog.bigsmoke.us/2010/06/21/rubygems#comments</comments>
		<pubDate>Mon, 21 Jun 2010 15:05:13 +0000</pubDate>
		<dc:creator>Rowan Rodrik</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Gems]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[scrAPI]]></category>

		<guid isPermaLink="false">http://blog.bigsmoke.us/?p=1442</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Because I <a href="http://blog.bigsmoke.us/tag/scrapi">used it successfully before</a>, I decided to use scrAPI to scrape the entries from the old Aihato guestbook. After preprocessing the HTML a bit, I finally got beyond an endless debugging sessions (which cumulated in me discovering a whole collection of nested <tt>&lt;html&gt;</tt> tags, which forbad any type of sensible parsing of the page).</p>

<p>The scrAPI script calls a simple PHP script to add the extracted comment to the WordPress DB. The next step was copying the script to the development server (which has command-line PHP and the MySQL daemon running). Of course, the development server (which runs Debian Lenny) didn&#8217;t have the scrapi package installed. So, I thought I&#8217;d install the rubygems package and be done after <q><tt>gem install scrapi</tt></q>.</p>

<p>It seemed to install just fine, but&#8230; it just won&#8217;t fucking work! Adding <q><tt>require 'rubygems'</tt></q> to the script doesn&#8217;t work either.</p>

<p>This whole thing reminded of a similar occasion a while back when RubyGems kept fucking up everything until we discovered through Google that the version of RubyGems shipped with Debian simply couldn&#8217;t handle the whole dependency graph we had to deal with (or something). We had to grab a newer version from Debian backports to make the whole thing work. Another couple of hours wasted on a botched up package management system.</p>

<p>This time I&#8217;ve already wasted enough time. I&#8217;m ready to change my PHP guestbook comment import code to some XML-RPC hack instead so that I can run it on my laptop.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.bigsmoke.us/2010/06/21/rubygems/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

