Quero tornar um arquivo bloqueado contra exclusão, mas ainda assim posso ser gravável. Como eu faço isso?
O arquivo em questão é um volume Truecrypt como um arquivo em um compartilhamento de rede NAS SMB, por isso não quero excluí-lo acidentalmente.
linux
windows
filesystems
therobyouknow
fonte
fonte
Respostas:
Para Windows:
Para Unix (incluindo OS X):
Observe que isso impedirá que o arquivo seja removido (excluído), mas não fará nada contra truncamentos acidentais ou substituição de lixo. Se um arquivo é gravável, você pode escrever qualquer coisa nele, ponto final.
Além disso, é quase impossível converter permissões de arquivo entre sistemas operacionais. Se o NAS executar o Linux e você tentar definir permissões no Windows, o resultado final poderá ser diferente do esperado.
fonte
No Linux, você pode criar um link físico para ele. Em seguida, você pode gravar e "excluí-lo", mas você removerá apenas a referência no seu diretório. O outro link físico ainda apontará para o conteúdo do arquivo, portanto não será excluído.
No mundo Unix, você não "exclui" arquivos. Você apenas diminui o número de links físicos para ele. Quando nada mais o aponta, o espaço é considerado livre e pode ser usado…
fonte
Backups. Você realmente não pode proteger um arquivo gravável de danos, mesmo que possa ser excluído. Faça backup diariamente.
fonte
Além das respostas anteriores, eu consideraria dar uma olhada no selinux. Lá você pode definir limitações bastante granulares.
fonte
Em um sistema de arquivos cow como o btrfs, você pode conseguir isso usando subvolumes + snapshots ou cp com --reflink = sempre, isso efetivamente resultará no número de arquivos que você deseja, que consumiriam a mesma quantidade de espaço que um + alguma sobrecarga (mas sem um número insano de cópias ou instantâneos, especialmente combinados com pequenos tamanhos de arquivo, isso não deve ser percebido) até que sejam modificados; nesse caso, apenas as partes que foram alteradas serão armazenadas separadamente e o restante ainda será compartilhado. Em seguida, defina as permissões em cada um separadamente (para obter o que deseja, faça regularmente um instantâneo ou copie com permissões somente leitura (e, opcionalmente, monte-o no ro ou não em tudo, se for um instantâneo e se for um arquivo, use chattr + i (os usuários podem escreva ou modifique o arquivo, mesmo que tenha permissões de gravação) em uma cópia, se você for paranóico).
fonte
No UNIX "padrão", parece impossível proteger um único arquivo contra exclusão se o diretório for gravável. Intuitivamente, pode-se esperar que limpar a proteção w dos bits de modo com 'chmod' proteja contra a exclusão, mas NÃO É O CASO. Da mesma forma, no AFS, você não pode proteger arquivos únicos de serem excluídos, porque as entradas da ACL (sem ou negando a permissão 'd' relevante) se aplicam apenas ao diretório como um todo.
fonte