Restringe o acesso a arquivos apenas para anexar

11

Eu tenho um diretório com arquivos de log e estou colocando logs do script lançado pelos usuários para eles. Logar com syslog não parece possível neste caso. (não-daemon rsync)

Eu quero que os usuários tenham apenas permissões de gravação nos arquivos de log. O problema é que as permissões de gravação devem ser mais restritas, para que os usuários (script) podem anexar apenas a esses arquivos. O sistema de arquivos subjacente é o XFS.

O seguinte não funciona:

# chattr +a test.log
chattr: Inappropriate ioctl for device while reading flags on test.log

Existe alguma outra solução para isso? Obrigado por suas dicas.

    
por metalhead 30.12.2012 / 17:28

3 respostas

8

O utilitário chattr é escrito para sistemas de arquivos ext2 / ext3 / ext4. Ele emite ioctls nos arquivos, então cabe ao sistema de arquivos subjacente decidir o que fazer com eles. O driver XFS em kernels Linux mais recentes suporta o mesmo FS_IOC_SETFLAGS ioctl que o ext [234] para controlar flags como o append-only, mas você pode estar rodando um kernel antigo onde ele não faz (CentOS?). Tente usar o utilitário xfs_io em vez disso:

echo chattr +a | xfs_io test.log

Note que, para o XFS como para o ext [234], somente o root pode alterar o flag somente de anexação (mais precisamente, você precisa da capacidade CAP_LINUX_IMMUTABLE ).

    
por 01.01.2013 / 02:47
1

Você tem permissão para fazer isso? De man 1 chattr :

A file with the 'a' attribute set can only be open in append mode for writing. Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.

    
por 30.12.2012 / 22:51
0

Alternativamente, você pode conseguir o mesmo usando SELinux , é provável que ele esteja ativado e funcionando se você estiver usando uma distribuição compatível com Red Hat. Isso funciona em todos os sistemas de arquivos, o SELinux bloqueia processos de realizar operações não permitidas.

Infelizmente, você precisa escrever uma política para o seu aplicativo para permitir o acesso a todos os recursos do sistema, exceto anexar a determinado arquivo (s). Isso pode ser um pouco desafiador se você fizer isso pela primeira vez, mas há uma vantagem nisso - uma camada adicional de segurança.

Eu tenho um exemplo de como escrever uma regra de arquivo somente de acréscimo nesta palestra: link

    
por 26.11.2018 / 09:05