linux上使用eCryptFS加密資料夾的方法
從前有一個攝影師,他不懂加密重要檔案,也不懂修電腦,結果你懂的。以下就介紹下linux的加密方法及eCryptFS;
加密的型別
我們基本上有兩種不同的方法可以對檔案和目錄進行加密。一種方法是,檔案系統級加密,只有某些檔案或目錄(比如/home/alice)選擇性地加密。在我看來,這是一種理想的入門方法。你沒必要重新安裝一切來啟用或測試加密。不過,檔案系統級加密存在一些缺點。比如說,許多現代的應用程式將檔案(或檔案的部分內容)快取在硬碟中的未加密區域,比如交換分割槽、/tmp和/var資料夾,它們會導致隱私洩密。
另一種方法是所謂的全磁碟加密,這意味著整個磁碟都經過了加密(主引導記錄可能除外)。全磁碟加密在物理磁碟層面實現;寫入到磁碟上的每個位元資料都經過了加密,從磁碟讀取的任何資料自動實時解密。這可以防止任何人可能未經授權就訪問未加密的資料,並且確保整個檔案系統裡面的所有資料都經過了加密,包括交換分割槽或任何臨時快取的資料。
可用的加密工具
在Linux中實施加密機制有幾種辦法。我在本教程中將介紹一種選擇:eCryptFS堆疊加密檔案系統工具。下面整理出了幾種可用的Linux加密工具,僅供參考。
檔案系統級加密
•EncFS:這是嘗試加密的最容易的方法之一。EncFS作為堆疊檔案系統來執行,所以你只要建立一個加密的資料夾,將它掛載到資料夾上即可使用。
相關連結:http://www.arg0.net/encfs
•eCryptFS:作為一款與POSIX相容的加密檔案系統,eCryptFS的工作方式與EncFS如出一轍,所以你得掛載它。
相關連結:http://ecryptfs.org
全磁碟加密
•Loop-AES:這是最古老的磁碟加密方法。它執行起來速度很快,可以在舊系統(比如核心2.0分支版本)上使用。
相關連結:http://sourceforge.net/projects/loop-aes/
•DMCrypt:現代Linux核心支援的最常見的磁碟加密方案。
相關連結:https://code.google.com/p/cryptsetup/wiki/DMCrypt
•CipherShed:這是現已停止開發的TrueCrypt磁碟加密軟體的開源分支版本。
相關連結:https://ciphershed.org
eCryptFS的基礎知識簡介
eCryptFS是一種堆疊加密檔案系統,自2.6.19以來,它就得到Linux核心的支援(作為ecryptfs模組)。用eCryptFS加密的偽檔案系統掛載到你現有的檔案系統上。它在EXT檔案系統系列及其他檔案系統(比如JFS、XFS、ReiserFS和Btrfs,甚至NFS/CIFS共享區)上執行起來非常順暢。
1 安裝eCryptFS
安裝到Debian、Ubuntu或衍生版本上:
$ sudo apt-get install ecryptfs-utils
注意:如果你決定在Ubuntu安裝過程中加密你的主目錄,就要確保eCryptFS應該已經安裝。
安裝到CentOS、RHEL或Fedora上:
# yum install ecryptfs-utils
安裝到Arch Linux上:
$ sudo pacman -S ecryptfs-utils
為了穩妥起見,安裝程式包後,裝入eCryptFS核心模組是個好的做法:
$ sudo modprobe ecryptfs
配置eCryptFS
現在不妨執行eCryptFS配置工具,開始加密某個目錄:
2 建立登入密碼和掛載密碼
ecryptfs-setup-private
如下圖所示:
3 掛載私人檔案
a) 建立資料夾 mkdir /root/tPrivate
b) 修改資料夾許可權,使其他人無法訪問這個資料夾 chmod 700 /root/tPrivate
c) 用ecrypt掛載資料夾(加密) mount -t ecryptfs /root/tPrivate
/root/tPrivate
d) 在掛載過程中會遇到詢問提示
首先需要輸入掛載密碼(不同於登入密碼)
然後需要選擇金鑰計算方式(直接回車為預設)
接著需要輸入加密長度(直接回車為預設)
接著需要選擇是否允許將未加密檔案放入此資料夾中(預設為不允許)
此時提示掛載成功
4)測試
a)建立檔案,並輸入內容,例如:gedit /root/private/test 輸入內容“this is a test file content”。
b)檢視檔案,輸入 cat /root/private/test 會看到 this is a test file content 字樣
c)解除安裝檔案,輸入"umount /root/private"
d)再次檢視檔案內容,輸入cat /root/private/test,會看到亂碼。
(5)快速掛載
以後每次開機後訪問加密資料前都需要重新掛載,你可以使用sudo mount -t ecryptfs ~/company_secret ~/company命令來掛載,但每次都要手工輸入一堆選項也挺煩人的。為了以後方便掛載,在~/.bashrc中加入別名:
alias mount_company="sudo mount -t ecryptfs $HOME/company_secret $HOME/company -o ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_enable_filename_crypto=y,ecryptfs_passthrough=n,ecryptfs_fnek_sig=cbd6dc63028e5602(需從前面記錄)"
以後每次使用前只需要執行mount_company即可:
[email protected]:~$ mount_company
[sudo] password for zhouzm:(管理員密碼)
Passphrase:(加密密碼)
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=cbd6dc63028e5602
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=cbd6dc63028e5602
Mounted eCryptfs
[email protected]:~$ cat company/test
123456
(6) 重灌系統或移動資料
你只需要記住加密密碼和ecryptfs_fnek_sig引數,則即使你要重灌系統或移動資料,也可以用同樣的命令對資料進行解密並掛載。
相關推薦
linux上使用eCryptFS加密資料夾的方法
從前有一個攝影師,他不懂加密重要檔案,也不懂修電腦,結果你懂的。以下就介紹下linux的加密方法及eCryptFS; 加密的型別 我們基本上有兩種不同的方法可以對檔案和目錄進行加密。一種方法是,檔案系統級加密,只有某些檔案或目錄(比如/home/alice)選擇性地加
linux檢視檔案和資料夾大小方法
檢視磁碟的佔用情況: $ sudo df -h udev 3.8G 0 3.8G 0% /dev tmpfs 771M 9.4M 762M 2% /run /dev/sda9 57G 5.1G 49
Win10此電腦上6個資料夾去除方法
把下面程式碼複製,寫入到 clear.reg中,然後執行即可 Windows Registry Editor Version 5.00 ;如需還原去除上語句前減號即可 ;取消我的電腦"視訊"資料夾 [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\C
滴滴雲上使用 eCryptfs 加密資料
1. eCryptfs 簡介 eCryptfs 是在 Linux kernel 實現的一個加密檔案系統,在 Linux kernel 2.6.19 版本收納入官方 Linux kernel。它採用堆疊式的設計思想,邏輯上位於 VFS 和傳統檔案系統之間。使用者應用程式對傳統檔案系統的讀寫
linux 伺服器上PHP程式資料夾讀寫許可權新增
sudo chmod 777 /var/www/html/專案/picture 修改某個目錄的許可權可以讓PHP讀寫 其中sudo chmod 777為命令的固定格式, /var/www/html/ 為需要讀寫許可權的絕對路徑。
Spring MVC 中檔案上傳/刪除 刪除空資料夾方法 + 下載方法
package com.pqs.common.tools; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOExce
linux訪問windows共享資料夾的方法
有時需要在linux下需要訪問windows的共享資料夾,可以使用mount掛載或者使用samba連線。 1、mount掛載 首先建立被掛載的目錄: $ mkdir windows 將共享資料夾掛載到windows資料夾: $ sudo mount -
Github上下載指定資料夾的方法
一般地,在Github上下載專案檔案只需要複製專案網址通過命令“git clone 網址”即可完成下載。 有的時候,我們並不需要整個專案檔案,而是隻需要下載其中的某個檔案或資料夾,可以利用SVN。SVN是基於檔案方式儲存的,Git是基於元資料方式分散式儲存檔案資訊的,它
Linux 中檔案和資料夾獲取 MySQL 許可權(SELinux)
今天在 Linux 系統上移動 MySQL 的資料庫目錄 配置如下: /etc/my.cnf [mysqld]datadir=/home/mysqlsocket=/var/lib/mysql/mysql.sock 更改完配置檔案重啟MYSQL的時候出現
Git上傳空資料夾
git上傳的資料夾為空的時候 1,先刪除空的資料夾 參考:https://www.cnblogs.com/wang715100018066/p/9694532.html 2,這個只能說是技巧不能說是方法,原理是在每個空資料夾新建一個.gitignore檔案,然後提交。 $ find . -type d
用不同的使用者名稱和密碼登入網路上的共享資料夾
2014-05-20 22:49 by MikeZhou, 10697 閱讀, 0 評論, 收藏, 編輯 https://www.cnblogs.com/jinjiangongzuoshi/p/3740218.html 網路共享時,
Linux下遍歷資料夾
#include <dirent.h> #include <stdio.h> #include <stdlib.h> #include <string.h> char *dirname="/path/"; DIR *dirfile; dirfiles
Linux檔案許可權與資料夾許可權實踐
檔案許可權在基礎中有介紹,不在重複 一、資料夾許可權: 示例: 解釋說明: r --read 既ls w --write 既建立新的目錄或者檔案 x --execute 既cd 現在有4個使用者分屬3個不同的使用者組,如下:
Linux中檢視各資料夾大小命令du -h --max-depth=1
du [-abcDhHklmsSx] [-L <符號連線>][-X <檔案>][--block-size][--exclude=<目錄或檔案>] [--max-depth=<目錄層數>][--help][--
純淨版linux (debian)掛載VirtualBox共享資料夾 virtual box虛擬機器在linux下設定共享資料夾
使用的虛擬機器版本是:VirtualBox-5.2.8-121009 使用的linux版本是:Linux debian 4.9.0-7-amd64 tty 1. 開始配置 1.1:開啟虛擬機器設定,開啟你的VirtualBox軟體(主要先不要開啟linux系統)。選中你的虛擬機器後,
linux重命名系統資料夾libexec後無法使用
問題描述: 能登陸ssh,但xftp無法使用,把/usr目錄下的libexec重新命名成了l,常用命令都不能用但能用cd 解決方法: 由於各種命令都用不了,只能另尋它法,考慮用光碟啟動,掛載後將資料夾名改回來 為了便於維護,直接用gparted Gpart
Linux下建立共享資料夾
1. 是否安裝了samba服務 sudo apt-get install samba sudo apt-get install smbfs 2. 建立需要共享的目錄/ home/usr/share 在目錄/home/xxxx/shar
Linux命令之建立資料夾3
1)mkdir fyr即可在當前目錄下建立一個資料夾 2)在fyr資料夾下建立一個子目錄 mkdir fyr/fyr1 注意:如果不存在父層目錄直接建立對應父層目錄下的子目錄mkdir FYR/fyr2 ;如圖所示會提示失敗; 解決同時建立父層面和對應子目錄的,加引數mkdi
linux迴圈遍歷資料夾下所有檔案
demofun(){ for file in `ls $1` do if test -f $file then echo "file: $file" elif test -d $file then
如何刪除Git上的遠端資料夾
方法一 這裡以刪除 test資料夾為案例 git rm -r --cached test //--cached不會把本地的test刪除 git commit -m 'delete test dir' git push -u origin master 方法二 如果誤提交