ecryptfs
ecryptfs是一种加密文件系统。该文件系统的内容在传输和储存时以密文形式存在。只有在mount时用密钥解密才能得到明文。利用这个特性,我们可以用他来对软件镜像中的部分敏感文件系统进行加密,然后打包发布。
1.加密文件系统
1.1 生成密钥passphrase
sig=`echo none | ecryptfs-add-passphrase | grep -v Passphrase | cut -d[ -f | cut -d] -f `
echo $sig > sig
1.2 准备空的加密文件系统 fs_crypt
mkdir fs_crypt
1.3 将上面创建的加密文件系统mount到加载点
mount -t ecryptfs -o ecryptfs_cipher=aes,ecryptfs_key_bytes=,ecryptfs_passthrough=n,ecryptfs_enable_filename_crypto=n,ecryptfs_sig=${sig},sig=${sig},verbosity= /fs_crypt/ /mnt/
1.4 将待加密的文件系统的内容复制到加载点
rsync -va /plain/ /mnt/
1.5 将加载点umount
umount /mnt/
1.6 fs_crypt就是生成的加密文件系统
对fs_crypt压缩打包,就可以以密文的形式传输和储存了,
2. 解密文件系统
2.1 将fs_crypt在目标设备上解压缩
2.2 用passphrase把fs_crypt mount到加载点。
sig=`cat sig`
mount -t ecryptfs -o ecryptfs_cipher=aes,ecryptfs_key_bytes=,ecryptfs_passthrough=n,ecryptfs_enable_filename_crypto=n,ecryptfs_sig=${sig},sig=${sig},verbosity= /fs_crypt/ /mnt/
2.3 访问加载点里面的文件即可访问到明文
所以这个过程中,密钥的保存是很重要的,需要通过其他加密方式进行分发。
参考: https://github.com/lxc/lxc/blob/master/hooks/mountecryptfsroot
ecryptfs的更多相关文章
- 左右GNU Linux企业加密文件系统 eCryptfs简介
/********************************************************************* * Author : Samson * Date ...
- eCryptfs文件系统测试
650) this.width=650;" onclick='window.open("http://blog.51cto.com/viewpic.php?refimg=" ...
- Linux基础介绍【第九篇】
服务器添加3块磁盘的体系结构 [root@oldboylinux test]# free -m total used free shared buffers cached M ...
- Linux文件搜索命令
文件搜索命令:locate locate 文件名 在后台数据库中按文件名搜索,搜索速度很快(比find命令要快得多) locate命令所搜索的后台数据库的位置:/var/bin/mlocate 支持模 ...
- proc文件系统
在shell终端里不带任何参数,直接运行mount命令可以显示正在挂载的文件系统.其中有这么一行 none on /proc type proc (rw) 这就是/proc文件系统.第一个域显示non ...
- 原来今天是感恩节-Linux基础继续&MySQL和PHP
hi 原来今天是感恩节.虽然一直没有过这个节日的习惯,但仅仅是听到感恩的消息,都能想到一幅幅画面.愿大家安好! 下午开题会议还是有所收获,悄悄的,就变向那个不喜欢自己的人了. 一.Linux基础(二) ...
- Linux磁盘及文件系统管理
在LINUX中我们知道一个很重要的概念,那就是"一切皆文件",这里的一切表示所有在LINUX系统的对象,自然也包括了LINUX中的硬盘设备.在LINUX中所有设备都被抽象成一个文件 ...
- ZFS(一):ZFS在Debian GNU/Linux上的安装
以下内容翻译自https://pthree.org/2012/04/17/install-zfs-on-debian-gnulinux/,并附有原文,由于是第一次翻译,如有任何翻译不恰当之处,欢迎指出 ...
- 诠释Linux中『一切都是文件』概念和相应的文件类型
导读 在 Unix 和它衍生的比如 Linux 系统中,一切都可以看做文件.虽然它仅仅只是一个泛泛的概念,但这是事实.如果有不是文件的,那它一定是正运行的进程. 要理解这点,可以举个例子,您的根目录( ...
随机推荐
- printf 格式输出代码大全
d,lx,ld,,lu,这几个都是输出32位的hd,hx,hu,这几个都是输出16位数据的,hhd,hhx,hhu,这几个都是输出8位的,lld,ll,llu,llx,这几个都是输出64位的, pri ...
- Kafka、Redis和其它消息组件比较
Kafka作为时下最流行的开源消息系统,被广泛地应用在数据缓冲.异步通信.汇集日志.系统解耦等方面.相比较于RocketMQ等其他常见消息系统,Kafka在保障了大部分功能特性的同时,还提供了超一流的 ...
- itextsharp生成pdf
itextsharp在ios中可用,亲测 (一)生成文档 Document document = , , , ), , , , ); //Document document = new Documen ...
- 持久层框架JPA与Mybatis该如何选型
一.现状描述 目前java 持久层ORM框架应用最广泛的就是JPA和Mybatis.JPA只是一个ORM框架的规范, 对该规范的实现比较完整就是Spring Data JPA(底层基于Hibernat ...
- git push 报src refspec xxx does not match any的错误
今天在向一个新的远程分支上推送项目的时候报错: 远程分支branch_new是其他人建的,我在自己本地修改后把自己分支的修改推送到这个远程分支上. 把修改提到本地仓库: git add ./ git ...
- spring boot 面试题详解
1.什么是springboot 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 创建独立的spring引用程序 main方法运行 嵌入的T ...
- mysql 主从同步(转)
教程开始:一.安装MySQL 说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22 二.配置MySQL主服务器(19 ...
- 使用Windows Powershell卸载和安装Win10 原生应用的方法
新装的Win10带有大量的实际工作和生活中不怎么常用的APP,如果觉得这些APP占用磁盘空间或者想要卸载这些应用(APP),Win10下并不能使用Windows 应用管理器直接图形化地卸载这些应用,而 ...
- IDEA上tomcat的配置
IDEA上tomcat的配置 IDEA上集成自己的tomcat,主要就是下面这张表的配置,不累述.
- 程序员这十个java题你都会吗?
前言 不论你是职场新人还是步入职场N年的职场新人大哥大~当然这个N<3~,我能担保你答不对这十个题~不要问我为什么这么自信~,这些个题还是"有水平"的javase的基础题,传 ...