tmpreaper, --proteger e um usuário não root

2

Estou um pouco confuso. Eu tenho um diretório de download que eu quero remover todos os arquivos com mais de 30 dias com tmpreaper. Apenas um problema, o diretório em questão é uma partição separada com um diretório lost + found, é claro que eu preciso mantê-lo, então eu adicionei --protect 'lost+found' , o problema é que as saídas 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'

Eu tentei com outro padrão como lost * e assim por diante ... Estou executando o tmpreaper como um usuário não-root porque não há razão para privilégios de superusuário porque eu possuo todos os arquivos (exceto lost + found). / p>

Eu sou forçado a executar o tmpreaper como root? Ou minhas habilidades não são tão boas quanto eu pensava? Eu acho que o problema é:

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.

Qualquer pensamento e / ou conselho?

O comando que estou tentando executar é algo como

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

Editar:

Redmumba notou que o código de retorno ainda é zero e os arquivos são removidos. Eu devo ter tido alguns outros problemas antes porque nada foi removido quando eu escrevi este post. Enfim, está funcionando agora, obrigado.

    
por nsg 19.03.2011 / 21:50

1 resposta

0

O diretório lost+found é específico do sistema de arquivos e, mesmo se você alterar as permissões, elas serão automaticamente revertidas para root:root em um remontamento (ou possivelmente ainda mais cedo). No entanto, porque parece que você não quer remover as coisas lá, parece que pode ser um problema com o diretório que você está especificando.

Por exemplo, digamos que você esteja removendo os arquivos dentro de /tmp , que está em uma partição separada. Se você executar tmpreaper --protect 'lost+found' /tmp/* , chdir em /tmp/lost+found então aplicará o shell glob - mas ele falhará com o problema de permissões que você viu. Quando você especifica o diretório para tmpreaper , basta usar o diretório pai - por exemplo, tmpreaper --protect 'lost+found' /tmp .

Espero que esse seja o seu problema ... se não, atualize com mais informações (como o comando exato que você está usando) e podemos tentar colocá-lo de volta nos trilhos!

EDIT: Então eu configuro localmente, e notei que ele termina com sucesso. Parece que apenas imprime a mensagem de erro, mas não reage a ela - ou seja, retorna 0, indicando sucesso. Eu originalmente assumi que estava falhando, mas isso não parece ser o caso. Parece que o arquivamento de um bug pode estar em ordem com detalhes, já que eu não imaginaria que esse seja o comportamento pretendido.

    
por 20.03.2011 / 04:21