Назад | Перейти на главную страницу

tmpreaper, --protect и пользователь без полномочий root

Я немного запутался. У меня есть каталог для загрузки, из которого я хочу удалить все файлы старше 30 дней с помощью tmpreaper. Только одна проблема, рассматриваемый каталог представляет собой отдельный раздел с каталогом lost + found, конечно, мне нужно сохранить его, поэтому я добавил --protect 'lost+found', проблема в том, что tmpreaper выводит:

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'

Я пробовал использовать другой шаблон, например, lost * и так далее ... Я запускаю tmpreaper как пользователь без полномочий root, потому что нет причин для привилегий суперпользователя, потому что мне принадлежат все файлы (кроме lost + found).

Я вынужден запускать tmpreaper как root? Или мои навыки снаряда не так хороши, как я думал? Думаю, проблема в следующем:

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.

Какие-нибудь мысли и / или советы?

Команда, которую я пытаюсь запустить, выглядит примерно так:

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

Редактировать:

Redmumba заметила, что код возврата по-прежнему равен нулю, и файлы удалены. У меня, должно быть, были и другие проблемы раньше, потому что ничего не было удалено, когда я писал этот пост. В любом случае, теперь он работает, спасибо.

В lost+found каталог зависит от файловой системы и, даже если вы измените разрешения, они автоматически вернутся к root:root на повторной установке (или, возможно, даже раньше). Однако, поскольку похоже, что вы НЕ хотите удалять что-либо там, похоже, что проблема в указанном вами каталоге.

Например, допустим, вы удаляете файлы внутри /tmp, который находится на отдельном разделе. Если ты бежишь tmpreaper --protect 'lost+found' /tmp/*, Так и будет chdir в /tmp/lost+found затем примените оболочку glob - но это не сработает с проблемой разрешений, которую вы видели. Когда вы указываете каталог для tmpreaper, просто используйте родительский каталог, т. е. tmpreaper --protect 'lost+found' /tmp.

Надеюсь, это ваша проблема ... если нет, обновите дополнительную информацию (например, точную команду, которую вы используете), и мы можем попытаться вернуть вас в нужное русло!

РЕДАКТИРОВАТЬ: Итак, я установил его локально и заметил, что он успешно завершается. Похоже, что он только распечатывает сообщение об ошибке, но не реагирует на него, то есть возвращает 0, что означает успех. Первоначально я предполагал, что это не так, но, похоже, это не так. Похоже, регистрация ошибки может быть в порядке с подробностями, поскольку я бы не подумал, что это предполагаемое поведение.