从前有一个摄影师,他不懂加密重要文件,也不懂修电脑,结果你懂的。以下就介绍下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即可:

zhouzm@zhouzm:~$ 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

zhouzm@zhouzm:~$ cat company/test

123456

(6) 重装系统或移动数据

你只需要记住加密密码和ecryptfs_fnek_sig参数,则即使你要重装系统或移动数据,也可以用同样的命令对数据进行解密并挂载。

linux中的fs文件夹,linux上使用eCryptFS加密文件夹的方法相关推荐

  1. xshell下载mysql到本地文件_在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹)-Go语言中文社区...

    在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹) 1 列出所有需要copy的sh文件 -bash-4.1$ ll /mysqllog/osw/*.sh ...

  2. Linux挂载proc文件夹,Linux中/etc/fstab /etc/mtab /proc/mounts这三个文件的分析与比较

    本文主要讲解Linux中/etc/fstab /etc/mtab /proc/mounts这三个文件的作用以及不同之处. /etc/fstab 运维都知道的文件,若想把mount的disk和dir设置 ...

  3. linux 备份mysql并上传_实现Linux中Mysql数据库自动备份并上传到远程FTP服务器

    这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到 ...

  4. linux分区表位置,Linux中/etc/fstab /etc/mtab /proc/mounts这三个文件的分析与比较 分区表位置...

    本文主要讲解Linux中/etc/fstab /etc/mtab /proc/mounts这三个文件的作用以及不同之处. 转自http://haohaozhang.blog.51cto.com/917 ...

  5. linux中_Linux基础知识(Linux系统、Linux中的链表)

    Linux系统简介 Linux系统的结构及特点 Linux系统的结构图如下图所示: 从上图可以看出,Linux是一个典型的宏内核(一体化内核)结构.硬件系统上面时硬件抽象层,在硬件抽象层上面时内核服务 ...

  6. 19. linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解

    linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解 文章目录 Linux权限位 读写执行 三种权限真正含义和作用 权限对文件的作用 权限对目录的作用 示例 chmod 使用数 ...

  7. Linux中一行命令查看网卡流量、统计网络流量的各种实现方法

    Linux中一行命令查看网卡流量.统计网络流量的各种实现方法. 方法一.nload工具 源码包路径: wget http://heanet.dl.sourceforge.net/project/nlo ...

  8. centos sudo不能运行_如何在 Linux 中配置 sudo 访问权限 | Linux 中国

    Linux 系统中 root 用户拥有 Linux 中全部控制权力.Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为.-- Magesh Maruthamuthu Lin ...

  9. linux中内部命令有哪些,linux内部命令有哪些

    linux中常见的内部命令有:1.exit命令,退出当前的shell:2.history命令,显示历史执行过的命令:3.cd命令,切换当前工作目录:4.source命令,重新执行刚修改的初始化文件:5 ...

最新文章

  1. 重磅直播|结构光双目立体匹配三维重建方法
  2. Win7旗舰版系统右键菜单响应速度很慢会延迟一段时间
  3. diou ciou torch
  4. MySQL 数据表备份导出,恢复导入操作实践
  5. Bootstrap3 轮番插件的使用方法
  6. 【Druid IO】Instantiation of [simple type, class druid.indexing.kafka.supervisor.KafkaSupervisorTunin
  7. openssl证书相关
  8. elasticsearch监控平台cerebro-0.8.3 相关操作
  9. 踩坑谷歌浏览器翻译插件自动创建font节点
  10. Weakly Superised video anomaly detection弱监督视频异常检测
  11. 雷军与陈年是真爱:凡客即将“小米化”改造
  12. 编程程软件测试学院3周年 为你破解入职大厂的终极奥秘
  13. 光速类有哪些最新发表的毕业论文呢?
  14. 「WAYZ维智」:全国最具价值的室内外混合定位感知网络 | 百万人学AI评选
  15. 为页卡添加锚点的JS,输入页卡对应锚点的链接就会打开相对应的页卡
  16. Intel 快速存储蓝屏
  17. 黑马程序员 if elseif else 与if if if连用的区别
  18. 进制数与字符串之间的转换
  19. Win7配置修改neighbor
  20. 数字化创新应用发布加速,JFrog DevOps 正当时

热门文章

  1. LANDESK操作系统部署时,网卡启动后,自动进入pe选择菜单,而不用按F8 进行选择启动菜单的情况下,如何操作?...
  2. RAID超级简单的教程
  3. jenkins Pipline 庖丁解牛
  4. PHP codeigniter layui 后台模板
  5. 项目之动态图片的制作
  6. AWS KMS加密和解密
  7. Word中怎么批量修改所有表格样式
  8. 深度学习之迁移学习介绍与使用
  9. 共享扫码娃娃机无现金化扫码支付
  10. 霍尔FOC转子位置估计算法