云文件的保护二

前篇文章使用ecryptfs来进行文件保护,但一个问题在于,ecryptfs是linux内核里面的,在其他平台并不好用,比如windows上就没有客户端了,这样也着实不太方便了。

愚公告诉我们,如果山搬不动,我们就不要山了。

因此,我找了另外一个类似的软件:gocryptfs,与cryptfs不同的不仅仅是因为用go写的,还在于多平台支持。但这两个采用的加密方式并不相同,因此不要认为这两个是可以互相解密的。使用起来同样简单,比ecryptfs更简单。

linux下安装:

sudo apt install gocryptfs

初始化加密目录(假设jiami_data放的是加密后的数据,data放的是原始数据):

gocryptfs -init jiami_data

挂载:

gocryptfs jiami_data data

windows下可以使用cppcryptfs, 有带界面和纯命令行的

android 下可以使用DroidFS

甚至连python都有对应的库。我讨厌python

所有的这些内容完全都是开源的,免费的。大爱

云盘文件的保护

现在有很多不错的云盘,空间又大,速度又快,比如阿里云盘,天翼云盘,放到里面相对而言还是不错的。但无论那个云盘,都有部分的限制,可能某些文件无法存上去,这就导致你认为你存上去了,云盘 却找不到,或者存在云盘上的文件没有想想中的安全,比如不小心密码被盗了,然后各种隐私爆光了。因此,云盘上的文件也需要做保护。

在网上可以找到一个cloudDrive的工具,支持将云盘挂载为本地硬盘使用,我自己觉得比官方提供的工具好用的多。更关键的是,支持linux, 而且,可以使用docker部署,部署超简单,使用也超简单, 真的非常感谢这个开发者了。 弄完之后,在系统中就可以当本地硬盘使用了。 所以,下面为了保护云盘上文件的操作,都是以云盘可以挂载为本地硬盘上为例的。

linux上有个ecryptfs, linux内核级别的支持,支持将文件内容及文件名加密。下面的是摘的别处的介绍:

eCryptFS是一种堆叠加密文件系统,自2.6.19以来,它就得到Linux内核的支持(作为ecryptfs模块)。用eCryptFS加密的伪文件系统挂载到你现有的文件系统上。它在EXT文件系统系列及其他文件系统(比如JFS、XFS、ReiserFS和Btrfs,甚至NFS/CIFS共享区)上运行起来非常顺畅。Ubuntu使用eCryptFS 作为其加密主目录的默认方法,ChromeOS也是如此。eCryptFS在底层使用AES算法作为默认算法,但它也支持其他算法,比如blowfish、des3、cast5和cast6等算法。一旦你手动安装eCryptFS,就可以在这些算法当中作一个选择。

使用起来也超简单的,以ubuntu为例,使用下面的方式即可安装:

sudo apt-get install ecryptfs-utils

下面以我的使用过程为例,来将部分文件加密存储到阿里云盘上的。

home目录中建立个.ecryptfs, 然后在这个目录中,使用简单的名称,建立两个以.conf和.sig结尾的文件,比如我的阿里云盘的两个文件为ali.conf和ali.sig。 ali.conf文件内容如下:

/media/CloudDrive/阿里云盘/data /home/user/alidata ecryptfs

第一个表示真实存储的位置,这个位置中都是加密的文件。 第二个表示系统挂载的位置,这个位置中看到的都是明文。当操作这个目录中的所有内容的时候,真实保存在第一个里面。 第三个是固定的内容,表示是ecryptfs的加密方式

sig 非常重要, 这个相当于密码文件,虽然里面存的不是密码明文, 这个文件中的每行使用下面的方式生成:

cryptfs-add-passphrase

执行然后输入密码后有类似下面的输出:

Inserted auth tok with sig [cbd6dc63028e5602] into the user session keyring

将中间[]包含的那段文字保存到sig文件中,比如我的ali.sig

cbd6dc63028e5602
cbd6dc63028e5602

第一行为文件内容加密要用的密钥,第二行表示文件名称加密要用的密钥,如果不想文件名加密的话,只保留一行就行,上面的例子明显两个密码相同,不推荐这么做。

挂载的方式(以我的ali.conf的配置为例):

mount.ecryptfs_private ali

然后就可以在 /homne/user/alidata中 看到解密后的文件了,写入到这个里面的内容会自动加密存储到加密的目录中。

windows上要使用的话,没有想到很好的方式,主要是ecryptfs没找到很方便的windows侧的工具。不过win10的wsl2.0支持linux,或者在linux上开个samba服务等等都还是可以的。关键是文件相对安全了。

一切为了文件

emacs,rime,emoji

为了更好的显示emoji,我把emacs升级为emacs-snapshot,最新的emacs-snapshot已经是29版本了。结果发现在笔记本上的显示正常,服务器上的在终端显示正常,gui版本还是方块。

查了一下,估计是字体的事情,于是

sudo apt install ttf-mscorefonts-install ttf-ancient-fonts

安装完后,字符显示正常了。但还是有个别的显示不出来。以后再研究吧。

我在emacs中使用的也还是rime输入法,并不是系统里的那个安装的rime, linux上叫中州韵的那个,而是emacs的librime的扩展。按照rime-emoji的说明,我在luna_pinyin_simp.custom.yaml中追加配置,完整的内容如下:

patch:
  switches:
  - name: ascii_mode
    reset: 0
    states: [ 中文, 西文 ]
  - name: full_shape
    states: [ 半角, 全角 ]
  - name: zh_simp
    reset: 1
    states: [ 漢字, 汉字 ]
  switches/@next:
    name: emoji_suggestion
    reset: 1
    states: [ "🈚️️\uFE0E", "🈶️️\uFE0F" ]
  'engine/filters/@before 0':
    simplifier@emoji_suggestion
  emoji_suggestion:
    opencc_config: emoji.json
    option_name: emoji_suggestion
    tips: all

同样,笔记本上正常,服务器上切换就提示rime的部分错误什么dict.yaml没有找到之类的,无法输入emoji符号。根据关键字找了下,没有找到。

服务器因为基本都是命令行,所以无所谓桌面的,就想着既然这样我装个ibus-rime看看。结果装完之后rime的那个错误也没有了。输入也支持emoji了。

🌸🌷🌹💐🥀🎨