ecryptfs是一种加密文件系统。该文件系统的内容在传输和储存时以密文形式存在。只有在mount时用密钥解密才能获得明文。利用这个特性,咱们能够用他来对软件镜像中的部分敏感文件系统进行加密,而后打包发布。加密
1.加密文件系统
1.1 生成密钥passphrasespa
sig=`echo none | ecryptfs-add-passphrase | grep -v Passphrase | cut -d[ -f 2 | cut -d] -f 1` echo $sig > sig
1.2 准备空的加密文件系统 fs_cryptcode
mkdir fs_crypt
1.3 将上面建立的加密文件系统mount到加载点blog
mount -t ecryptfs -o ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n,ecryptfs_enable_filename_crypto=n,ecryptfs_sig=${sig},sig=${sig},verbosity=0 /fs_crypt/ /mnt/
1.4 将待加密的文件系统的内容复制到加载点ip
rsync -va /plain/ /mnt/
1.5 将加载点umountci
umount /mnt/
1.6 fs_crypt就是生成的加密文件系统
对fs_crypt压缩打包,就能够以密文的形式传输和储存了,
2. 解密文件系统
2.1 将fs_crypt在目标设备上解压缩
2.2 用passphrase把fs_crypt mount到加载点。it
sig=`cat sig` mount -t ecryptfs -o ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n,ecryptfs_enable_filename_crypto=n,ecryptfs_sig=${sig},sig=${sig},verbosity=0 /fs_crypt/ /mnt/
2.3 访问加载点里面的文件便可访问到明文class
因此这个过程当中,密钥的保存是很重要的,须要经过其余加密方式进行分发。打包