Se você é o único usuário no sistema, e ninguém pode razoavelmente acessar seu computador sem as suas permissões, então você pode simplesmente bloquear o acesso usando este comando, como por A resposta de Zanna :
sudo chown root:root /my/secret/file.txt
sudo chmod 600 /my/secret/file.txt
Nesse caso, o arquivo só pode ser lido e / ou gravado pelo usuário root
. Isso é considerado "seguro o suficiente" se ninguém conseguir iniciar seu computador sem sua permissão ou levantar seu disco rígido. Estamos usando o usuário root
neste caso, porque o usuário root
sempre pode ler arquivos, mesmo que eles não tenham permissão. Ao usar o usuário root, impomos que somente um usuário possa acessá-lo.
Se você quiser marcar o arquivo como imutável de qualquer forma, forma ou formulário, poderá usar o atributo i
para marcar o arquivo como imutável . Nesse caso, as permissões do arquivo estão bloqueadas e não podem ser alteradas sob nenhuma circunstância. Assim, você pode fazer o seguinte comando para tornar o arquivo imutável e protegê-lo das alterações de exclusão e permissão:
sudo chattr +i /my/secret/file.txt
Se você quiser alterá-lo, substitua o +i
por um -i
para desbloquear o arquivo temporariamente. Veja a resposta de Rinzwind para uma visão mais aprofundada.
Agora, se outras pessoas tiverem acesso ao seu computador (remoto sudo
access ou qualquer forma de acesso físico), isso se desfaz instantaneamente. Um invasor pode usar root
de poderes para ler seu arquivo, inserir um Live USB ou apenas puxar seu disco rígido.
Portanto, precisamos criptografar o arquivo. Eu pessoalmente prefiro usar "contêineres de arquivos", para que você possa ficar mais lá e fazer com que ele cresça conforme necessário. chattr +i
ainda é recomendado para que o arquivo não seja excluído acidentalmente (ou alterado). Por fim, se você estiver usando uma imagem criptografada, poderá definir permissões para permitir que outras pessoas acessem um subconjunto muito limitado de arquivos quando o disco estiver montado, tornando-o adequado para um servidor. Este guia estava originalmente disponível aqui e foi adaptado para uso aqui.
Primeiramente, você deseja criar uma imagem de disco para seu uso. Neste exemplo, vamos fazer 5 GB.
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
Então, precisamos tornar sua imagem criptografada:
sudo cryptsetup luksFormat ~/NSA-Data-Dump-20161012.img
Você terá uma escolha aqui para inserir sua senha de criptografia preferida. Feito isso, precisamos expor o dispositivo de bloco bruto:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
Neste momento, temos um contêiner de arquivos descriptografado, mas não há sistema de arquivos, e é tão bom quanto inútil. Vamos consertar isso:
sudo mkfs.ext4 /dev/mapper/my-secret-device
Agora, precisamos de um lugar para montar nossa nova partição. Nesse caso, vou colocá-lo em /crypt
. Eu sou usuário 1000, então, vou definir minha partição para permitir que eu (e o root) leiam / escrevam a partir dela.
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
Agora, posso usar minha ferramenta de arquivo para navegar até /crypt
e posso armazenar todos os meus arquivos confidenciais lá. Quando terminar, precisarei desmontar e criptografar novamente minha partição.
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
Agora, vou definir partições apropriadas em meu arquivo de imagem, de modo que apenas eu e o root possam acessá-lo, e que ele não possa mais ser alterado.
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
Sempre que eu quero abrir este arquivo para leitura, eu só preciso executar esses dois comandos, que eu posso facilmente apelidar:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
Meus dados criptografados estarão disponíveis em /crypt
e permanecerão como somente leitura e estarão acessíveis somente para mim e para o root.
Se eu quiser alterar o arquivo, preciso alterar as permissões e montar:
sudo chattr -i ~/NSA-Data-Dump-20161012.img
chmod 700 ~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
Agora, você precisa ter cuidado aqui porque, se um usuário tiver raiz em seu sistema, ele poderá modificar / destruir sua partição criptografada, tornando-a inútil. Eles também podem roubar dados da unidade, mas apenas quando ela estiver aberta. No entanto, eles não podem roubar dados ou até mesmo ver que os dados existem sem que você os abra explicitamente. Portanto, é seu dever certificar-se de que seu sistema é seguro o suficiente para não ter nenhum usuário root online ao abrir seu volume criptografado.
TL; DR :
-
Faça o cofre:
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mkfs.ext4 /dev/mapper/my-secret-device
-
Encha o cofre:
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
-
Bloqueie o cofre:
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
-
Congelar o cofre:
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
-
Abra o cofre:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro