Si usted es el usuario único en el sistema y nadie puede acceder razonablemente a su computadora sin sus permisos, puede bloquear el acceso con este comando, según la respuesta de Zanna :
sudo chown root:root /my/secret/file.txt
sudo chmod 600 /my/secret/file.txt
En este caso, el archivo solo puede ser leído y / o escrito por el root
usuario. Esto se considera "lo suficientemente seguro" si nadie puede arrancar su computadora sin su permiso o levantar su disco duro. Estamos usando al root
usuario en este caso, porque el root
usuario siempre puede leer archivos, incluso si no tienen permiso. Al usar el usuario raíz, exigimos que solo un usuario pueda acceder a él.
Si desea marcar el archivo como inmutable de cualquier forma o forma, puede usar el i
atributo para marcar el archivo como inmutable . En este caso, los permisos del archivo están bloqueados y no se pueden cambiar bajo ninguna circunstancia. De este modo, puede hacer el siguiente comando para hacer que el archivo no se pueda cambiar y protegerlo de la eliminación y los cambios de permisos:
sudo chattr +i /my/secret/file.txt
Si desea cambiarlo, reemplácelo +i
con a -i
para desbloquear el archivo temporalmente. Vea la respuesta de Rinzwind para una visión más profunda.
Ahora, si otras personas tienen acceso a su computadora (ya sea sudo
acceso remoto o cualquier forma de acceso físico), esto se desmorona instantáneamente. Un atacante puede usar root
poderes para leer su archivo, insertar un USB en vivo o simplemente extraer su disco duro.
Por lo tanto, necesitamos encriptar el archivo. Personalmente prefiero usar "contenedores de archivos", para que pueda pegar más y hacer que crezca según sea necesario. chattr +i
todavía se recomienda para que el archivo no se elimine accidentalmente (o se altere). Finalmente, si está usando una imagen encriptada, puede establecer permisos para permitir que otros accedan a un subconjunto muy limitado de archivos cuando se monta el disco, lo que lo hace bueno para un servidor. Esta guía estaba originalmente disponible aquí , y fue adaptada para su uso aquí.
En primer lugar, desea crear una imagen de disco para su uso. En este ejemplo, lo haremos con 5 GB.
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
Luego, necesitamos encriptar su imagen:
sudo cryptsetup luksFormat ~/NSA-Data-Dump-20161012.img
Aquí tendrá la opción de ingresar su contraseña de cifrado preferida. Una vez hecho esto, necesitamos exponer el dispositivo de bloque sin procesar:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
En este momento, tenemos un contenedor de archivos descifrado, pero no hay un sistema de archivos, y es tan bueno como inútil. Vamos a arreglar eso:
sudo mkfs.ext4 /dev/mapper/my-secret-device
Ahora, necesitamos un lugar para montar nuestra nueva partición. En este caso, lo pondré en /crypt
. Soy el usuario 1000, así que voy a configurar mi partición para que solo me permita (y root) leer / escribir desde ella.
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
Ahora, puedo usar mi herramienta de archivos para navegar /crypt
y puedo almacenar todos mis archivos confidenciales allí. Una vez que termine, tendré que desmontar y volver a cifrar mi partición.
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
Ahora, voy a configurar particiones apropiadas en mi archivo de imagen, de modo que solo yo y root podamos acceder a él, y que ya no se pueda cambiar.
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
Cada vez que quiero abrir este archivo para leer, solo necesito ejecutar estos dos comandos, que puedo alias fácilmente:
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
Mis datos cifrados estarán disponibles en /crypt
y serán de solo lectura y solo accesibles para mí y root.
Si quiero alterar el archivo, necesito cambiar los permisos y luego 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
Ahora, debe tener cuidado aquí porque si un usuario tiene root en su sistema, puede modificar / destruir su partición encriptada, dejándola inútil. También pueden robar datos del disco, pero solo cuando está abierto. Sin embargo, no pueden robar datos o incluso ver que los datos existen sin que usted los abra explícitamente. Por lo tanto, es su deber asegurarse de que su sistema sea lo suficientemente seguro como para no tener ningún usuario root en línea cuando abra su volumen cifrado.
TL; DR :
Haz la bóveda:
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
Llena la bóveda:
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
Bloquee la bóveda:
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
Congelar la bóveda:
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
Abre la bóveda:
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