Если вы являетесь единственным пользователем в системе, и никто не может разумно получить доступ к вашему компьютеру без ваших разрешений, то вы можете просто заблокировать доступ с помощью этой команды, согласно ответу Zanna :
sudo chown root:root /my/secret/file.txt
sudo chmod 600 /my/secret/file.txt
В этом случае файл может быть прочитан и / или записан только rootпользователем. Это считается «достаточно безопасным», если никто не может загрузить ваш компьютер без вашего разрешения или поднять ваш жесткий диск. В rootэтом случае мы используем пользователя, потому что rootпользователь всегда может читать файлы, даже если у них нет разрешения. Используя пользователя root, мы обеспечиваем доступ к нему только одному пользователю.
Если вы хотите пометить файл как неизменяемый любым способом, формой или формой, вы можете использовать iатрибут, чтобы пометить файл как неизменяемый . В этом случае права доступа к файлу заблокированы и не могут быть изменены ни при каких обстоятельствах. Таким образом, вы можете выполнить следующую команду, чтобы сделать файл неизменным и защитить его от удаления и изменения разрешений:
sudo chattr +i /my/secret/file.txt
Если вы хотите изменить его, замените его +iна, -iчтобы временно разблокировать файл. Смотрите ответ Rinzwind для более глубокого обзора.
Теперь, если другие люди имеют доступ к вашему компьютеру (удаленный sudoдоступ или физический доступ в любой форме), это мгновенно разваливается. Злоумышленник может использовать rootполномочия, чтобы прочитать ваш файл, вставить Live USB или просто вытащить ваш жесткий диск.
Поэтому нам нужно зашифровать файл. Лично я предпочитаю использовать «файловые контейнеры», чтобы вы могли больше вставлять и увеличивать их по мере необходимости. chattr +iвсе еще рекомендуется, чтобы файл не был случайно удален (или изменен). Наконец, если вы используете зашифрованное изображение, вы можете установить разрешения, позволяющие другим пользователям получать доступ к очень ограниченному подмножеству файлов при подключении диска, что делает его пригодным для сервера. Это руководство изначально было доступно здесь и было адаптировано для использования здесь.
Прежде всего, вы хотите создать образ диска для вашего использования. В этом примере мы сделаем 5 ГБ.
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
Затем нам нужно сделать ваше изображение зашифрованным:
sudo cryptsetup luksFormat ~/NSA-Data-Dump-20161012.img
У вас будет выбор здесь, чтобы ввести предпочитаемый пароль шифрования. Как только это будет сделано, нам нужно предоставить необработанное блочное устройство:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
Прямо сейчас у нас есть расшифрованный файловый контейнер, но нет файловой системы, и это так же бесполезно. Давайте исправим это:
sudo mkfs.ext4 /dev/mapper/my-secret-device
Теперь нам нужно место для монтирования нашего нового раздела. В этом случае я буду помещать это в /crypt. Я пользователь 1000, поэтому я собираюсь установить свой раздел, чтобы разрешить мне (и пользователю root) читать / писать с него.
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
Теперь я могу использовать свой инструмент для работы с файлами /cryptи хранить там все свои конфиденциальные файлы. Как только я закончу, мне нужно размонтировать и заново зашифровать мой раздел.
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
Теперь я собираюсь установить соответствующие разделы в моем файле изображения, чтобы только я и root могли получить к нему доступ, и чтобы он больше не мог быть изменен.
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/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
Мои зашифрованные данные будут доступны по адресу /cryptи будут доступны только для чтения и доступны только для меня и root.
Если я хочу изменить файл, мне нужно изменить разрешения и затем смонтировать:
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
Теперь вам нужно быть осторожным, потому что, если у пользователя есть root в его системе, он может изменить / уничтожить ваш зашифрованный раздел, делая его бесполезным. Они также могут украсть данные с диска, но только когда он открыт. Тем не менее, они не могут украсть данные или даже увидеть, что данные существуют без вашего явного открытия. Таким образом, вы обязаны убедиться, что ваша система достаточно безопасна, чтобы при открытии зашифрованного тома не было никаких пользователей root.
TL; DR :
Сделать хранилище:
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
Заполните хранилище:
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
Заблокировать хранилище:
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
Заморозить хранилище:
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/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