Eu tenho um diretório com arquivos de log e estou colocando logs do script iniciado pelos usuários neles. O log com o syslog não parece possível neste caso. (rsync não daemon)
Quero que os usuários tenham apenas permissões de gravação em arquivos de log. O problema é que as permissões de gravação devem ser mais restritas, para que os usuários (script) possam anexar apenas 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.
chattr +a
funciona para mim aqui (3,2 kernel). Observe que você precisa ser root para usarchattr
(um$
prompt sugere não-superusuário), embora você receba uma mensagem de erro diferente sechattr +a
for suportada e você não for root.Respostas:
O
chattr
utilitário foi escrito para sistemas de arquivos ext2 / ext3 / ext4. Como emite ioctls nos arquivos, cabe ao sistema de arquivos subjacente decidir o que fazer com eles. O driver XFS nos kernels Linux mais recentes suporta o mesmoFS_IOC_SETFLAGS
ioctl que o ext [234] para controlar sinalizadores como somente anexar, mas você pode estar executando um kernel mais antigo onde não possui (CentOS?). Tente usar oxfs_io
utilitário:Observe que, para o XFS, como para o ext [234], apenas o root pode alterar o sinalizador somente de acréscimo (mais precisamente, você precisa do
CAP_LINUX_IMMUTABLE
recurso).fonte
Você tem permissões para fazer isso? De
man 1 chattr
:fonte
Como alternativa, você pode obter o mesmo usando o SELinux , é provável que ele esteja ativado e em execução se você estiver usando a distribuição compatível do Red Hat. Isso funciona em todos os sistemas de arquivos, o SELinux impede que os processos executem operações não permitidas.
Infelizmente, você precisa escrever uma política para seu aplicativo para permitir o acesso a todos os recursos do sistema, exceto anexando arquivos específicos. Isso pode ser um pouco desafiador se você fizer isso pela primeira vez, mas há uma vantagem nessa camada adicional de segurança.
Eu tenho um exemplo de como escrever uma regra de arquivo somente anexado nesta palestra: https://www.youtube.com/watch?v=zQcYXJkwTns
fonte