Como tornar os arquivos inalteráveis e não-removíveis sem 'chattr'?

2

Eu (e meus colaboradores) tenho uma árvore de diretórios contendo ~ 160K arquivos (a maioria deles é gerada automaticamente pela instrumentação de coleta de dados).

Esses arquivos residem em um sistema que é armazenado em backup constantemente e, portanto, não estamos muito preocupados com perda ou corrupção de dados, contanto que tenhamos as informações necessárias para restaurar a partir do backup, quando necessário.

Estamos muito mais preocupados com a perda ou corrupção inadvertida de dados resultante do erro do usuário (especialmente código escrito pelo usuário), pois isso significa, na melhor das hipóteses, desperdício de trabalho até que o problema seja detectado.

Portanto, queremos tornar esses arquivos não configuráveis e não modificáveis.

Infelizmente, nenhum de nós tem permissão para usar chattr neste sistema, o que exclui a aplicação de chattr +i a esses arquivos.

Existe alguma outra maneira, não exigindo permissões especiais, para aproximar chattr +i ?

O restante deste post descreve algumas possibilidades que consideramos, juntamente com suas deficiências.

Uma possibilidade seria aplicar chmod -R a-w DATA , em que usei DATA como atalho para a raiz da árvore de diretórios em questão.

Isso é bom como uma primeira aproximação, mas vai um pouco longe demais, porque ele renderiza muitas operações que podemos precisar executar ocasionalmente (por exemplo, consolidando vários subdiretórios em um)

Uma segunda possibilidade seria algo como

find DATA -type f -exec chmod a-w {} \;

Isso é um pouco mais flexível, e os arquivos não podem mais ser modificados, mas eles ainda podem ser excluídos.

    
por kjo 28.10.2015 / 18:56

1 resposta

2

Você não pode fazer isso sem chattr .

No entanto, o que você pode fazer é colocar os arquivos que você não deseja que sejam modificados ou excluídos em um diretório separado, tornar esse diretório não gravável (por exemplo, chmod og-w DIR ) e os arquivos nele somente leitura (por exemplo, chmod 644 DIR/* )

Este diretório separado não deve ser um subdiretório de nenhum diretório ao qual os usuários tenham acesso de gravação, caso contrário, eles ainda poderão excluir o diretório ou alterar suas permissões.

    
por 29.10.2015 / 01:29