FreeBsd e-mail question

Erik Trulsson ertr1013 at
Thu Oct 4 01:16:12 PDT 2007

On Thu, Oct 04, 2007 at 04:56:35PM +1000, Ian Smith wrote:
> On Wed, 3 Oct 2007 16:30:54 -0400 Lisa Casey <lisa at> wrote:
>  > The problem comes in when a customer cancels his account. We remove users by 
>  > rmuser username. That command removes the user from the password file, 
>  > removes his home directory and removes the mailspool. What it doesn't do is 
>  > to remove the .username.pop file associated with that mailbox. This isn't a 
>  > problem unless we add another account with the same username. The new 
>  > account cannot pop his mail because he gets the following  error messge:
>  > 
>  > -ERR [SYS/PERM] Temporary drop /var/mail/.jjvc.pop not owned by jjvc.
>  > 
>  > If I take a look at /var/mail/.jjvc.pop it isn't owned by anyone, the 
>  > ownership of the file is the group number of the original jjvc.
>  > 
>  > -rw-rw----   1 1473             mail                     0 Sep 11 19:15 
>  > .jjvc.pop
>  > 
>  > Is there anyway to have rmuser remover the mail drop file associated with 
>  > that account also, or am I just going to have to remove these manually?
> I've read this whole thread, and what's strange is that this used to
> work.  I just checked our old FreeBSD 2.2.6 system where rmuser always
> cleaned up /var/mail/.{$user}.pop properly.  Its /usr/sbin/rmuser had: 
>  # Remove some pop daemon's leftover file
>  $file = "$mail_dir/.${login_name}.pop";
>  if (-e $file || -l $file) {
>      print STDERR "Removing pop daemon's temporary mail file ${file}:";
>      unlink $file ||
>          print STDERR "\n${whoami}: Warning: unlink on $file failed ($!) - continuing\n";
>      print STDERR " done.\n";
>  }
> So I wonder whether it's a bug - or maybe a later popper update? - that
> has the present version of rmuser looking for ${MAILSPOOL}/${login}.pop
> instead?

As far as I can tell the change was introduced back in 2002 when rmuser was
changed from a Perl program into a shell script - presumably as part of the
process of removing Perl from the base system.
FreeBSD versions 2.2 - 4.11 used the Perl version of rmuser, while all
5.x and 6.x releases have used the shell script version.

I have no idea if the difference - if the file rmuser looks for has a leading
'.' in the filename or not - was deliberate or simply a mistake, but I
suspect the latter: it is the kind of thing that is very easy to miss when
rewriting a program in another language.

<Insert your favourite quote here.>
Erik Trulsson
ertr1013 at

More information about the freebsd-questions mailing list