logrotate como usuário não root para arquivos com vários proprietários

3

Eu tenho uma coleção de arquivos de log com vários proprietários. Cada arquivo de log corresponde a um de um conjunto de programas, e as permissões são graváveis em grupo, de forma que quem inicia o (s) programa (s) possa gravar nos logs. (Os arquivos são 660, os diretórios são 774).

Eu gostaria de usar logrotate para arquivar os logs de tempos em tempos. Como todos no nosso grupo podem ler os arquivos, presumi que o logrotate poderia ser executado por um usuário. No entanto, o logrotate tenta criar os arquivos girados com o mesmo proprietário dos originais. Se o usuário ativo possui todos os arquivos, tudo funciona bem, mas caso contrário, o logrotate falha porque os usuários não têm permissão para criar arquivos de propriedade de outra pessoa.

Existe uma maneira de contornar isso? Até agora eu considerei (e descartei) as seguintes opções

  • executando logrotate como root. Idealmente eu acionaria logrotate de dentro de um dos outros programas, que podem ser executados por qualquer pessoa no grupo. Mesmo aqueles sem direitos de sudo.
  • a opção create poderia ajudar nos logrotations subseqüentes, já que o usuário ativo teria todos os arquivos de log. Mas isso não ajudaria pela primeira vez que o logrotate é chamado.
  • a opção su requer permissões de root e pode não ajudar, pois os arquivos de log não são necessariamente todos de propriedade do mesmo usuário.
  • crie meu próprio script com base em cp / mv e > ${file} . Eu gostaria de fazer uso das ferramentas existentes, se possível.
por craq 15.03.2016 / 16:36

0 respostas