Comment 24 for bug 39249

Revision history for this message
Ralph Corderoy (ralph-inputplus) wrote : Re: (Dapper) can't create /var/lib/dhcp3/dhclient.eth0.leases: Permission denied

Seeing this on a new 8.04 Server install. Given Martin said it needs info so long ago I'm changing it back to confirmed in the hope there's since been enough info. Here's mine; it's just got eth0 and lo interfaces.

    $ cd /var/lib/dhcp3
    $ ls -la
    total 8
k drwxr-xr-x 2 root root 4096 2008-04-30 23:30 .
    drwxr-xr-x 24 root root 4096 2008-05-27 16:40 ..
    -rw-r--r-- 1 root root 0 2008-04-30 23:30 dhclient.leases
    $
    $ p=`pidof dhclient3`
    $ ps lww $p
    F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
    1 101 4014 1 18 -2 2340 820 - S<s ? 0:00 dhclient3 -e IF_METRIC=100 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp3/dhclient.eth0.leases eth0
    $
    $ sudo cat /proc/$p/status
    Name: dhclient3
    State: S (sleeping)
    Tgid: 4014
    Pid: 4014
    PPid: 1
    TracerPid: 0
    Uid: 101 101 101 101
    Gid: 102 102 102 102
    FDSize: 32
    Groups:
    VmPeak: 2344 kB
    ...
    $
    $ getent passwd 101
    dhcp:x:101:102::/nonexistent:/bin/false
    $ getent group 102
    dhcp:x:102:
    $

dhcp3-3.0.6.dfsg/debian/dhcp3-client.postinst creates dhclient.leases without any embedded interface name:

    if [ ! -e /var/lib/dhcp3/dhclient.leases ]; then
        if test -e /var/lib/dhcp/dhclient.leases; then
            cp /var/lib/dhcp/dhclient.leases /var/lib/dhcp3/dhclient.leases
        else
            touch /var/lib/dhcp3/dhclient.leases
        fi
    fi

dhcp3-3.0.6.dfsg/debian/dhcp3-client.postrm doesn't handle removing dhclient.eth0.leases on a purge:

        # Remove lease database
        rm -f /var/lib/dhcp3/dhclient.leases*

ifconfig(8) only lists eth0 and lo interfaces.

I can't spot what's starting dhclient3 for an interface, e.g. eth0, but whatever it is that's doing so and is passing those `dhclient.$iface.*' parameters shown above is the cause of the problem. And it also looks like the source debian/* files need to know this can now happen, for installation and purging.