Якщо ви єдиний користувач у системі, і ніхто не може обґрунтовано отримати доступ до вашого комп'ютера без ваших дозволів, ви можете просто заблокувати доступ за допомогою цієї команди відповідно до відповіді 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
повноваження, щоб прочитати файл, вставити живий 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