tmpreaper, --protect and a non-root user

Posted by nsg on Server Fault See other posts from Server Fault or by nsg
Published on 2011-03-19T20:50:57Z Indexed on 2011/03/20 19:23 UTC
Read the original article Hit count: 271

Filed under:
|

Hi, I'm a little confused. I have a download directory that I want to remove all files older then 30 days with tmpreaper. Just one problem, the directory in question is a separate partition with a lost+found directory, of course I need to keep it so I added --protect 'lost+found', the problem is that tmpreaper outputs:

error: chdir() to directory 'lost+found' (inode 11) failed: Permission denied
(PID 30604) Back from recursing down `lost+found'.
Entry matching `--protect' pattern skipped. `lost+found'

I have tried with other pattern like lost* and so on... I'm running tmpreaper as a non-root user because there is no reason for superuser privileges because I own all files (except lost+found).

Are I'm forced to run tmpreaper as root? Or are my shell-skills not as good as I thought? I guess the problem is:

tmpreaper  will  chdir(2) into each of the directories you've 
specified for cleanup, and check for files matching the 
<shell_pattern> there.  It then builds a list of them,  and
uses that to protect them from removal.

Any thought and/or advice?

Edit:

The command I'm trying to run is something like

$ /usr/sbin/tmpreaper -t --protect 'lost+found' 30d /mydir 1> /dev/null
error: chdir() to directory `lost+found' (inode 11) failed: Permission denied

Edit 2:

I read the source code for tmpreaper-1.6.13 and found this

if (safe_chdir (dirname))
    exit(1);

and

if (chdir (dirname)) {
    message (LOG_ERROR,
        "chdir() to directory `%s' (inode %lu) failed: %s\n",
        dirname, (u_long) sb1.st_ino, strerror (errno));
    return 1;
}

So it seems tmpreaper needs to be able to chdir in to all directories, ignored or not. I see two options left

  1. Run tmpreaper as root
  2. Move the download directory
  3. Find a alternative tool (tmpwatch?)

I will give it some more research before i make a choice.

© Server Fault or respective owner

Related posts about linux

Related posts about tmpwatch