我们知道对于Linux服务器来说是支持多用户多任务环境的,聪明的Linux同学给我们每个用户都有各自的权限,彼此工作互不干扰。但是环境中有一个Super man存在呢,谁拥有它的权限就可以‘偷窥’别人隐私了,真是不讲理。那么问题来了,我既没有super man权限,又不想给super man来看我们隐私,咋办呢?

今天冬至,教您一招来保护自己的隐私,推翻霸道的super man独裁的世道,就这么任性。好了,废话不多说,玩过Linux的同学都知道在Linux中一切都是文件。

所以,思路来了,既然一切皆是文件,那么可不可以对自己不想公开的私密文件进行加密呢。答案是肯定的,那么该如何加密呢? 下面,介绍给你或者说我自己.

文件加密

当想为编辑的文件进行加密时,可以在启动vim时使用-x参数:

1
vim -x test.sh

vim会向你要一个密码用于加密/解密该文件;

//输入密码 Enter encryption key: 现在要小心地键入你的密码了. 键入的同时你看不到这些字符, 它们都以星号显示. 为了避免你的键入有误, Vim会要求你再次输入:

1
2
//请再一次输入密码
Enter same key again:

现在,你可以放心地在文件里写下你的秘密了,任何人想偷看你加密文件或者你输入密码错误时,都会显示一堆乱码。

打开或关闭文件加密

当我们想要停止对一个文件进行加密时,可以把key选项设置为一个空字符串:

1
set key=

下次你存盘该文件时就不会进行加密了. 通过设置´key´的值来进行加密可不是一个好主意, 因为密码会显露无遗. 任何趴在你肩膀上的人都能看到你的密码. 为避免这个问题大牛们创造了:X命令. 它会象-x一样问你要一个密码:

1
2
3
:X        //特别注意,这里是大写的X字母
Enter encryption key: ******
Enter same key again: ******

加密的限制

Vim中所用的加密算法还不够强大. 偶尔防范一下窥视者还可以, 对付 一个加密专家尤其是他有充足的时间就不行了. 同时你应该知道交换文件 并没有被加密, 所以在你编辑时拥有超级用户特权的人还是可以从该文件 中获取未加密的内容. 有一个避免别人读取你的交换文件的办法就是禁用 交换文件. 如果在命令行上指定了-n参数, 就不会生成交换文件(Vim会把所 有东西都放到内存里). 比如, 下面的命令就在编辑加密文件test.sh时 不使用交换文件:

1
vim -x -n test.sh

如果已经在编辑过程中, 也可以通过下面的命令禁用交换文件:

1
:setlocal noswapfile

因为没有了交换文件, 所以灾难恢复也不可能了. 这时最好是经常保存 编辑的结果, 免得一番辛苦的成果杳然无踪.

当文件在内存中时, 它是以普通文本的形式保存的. 任何有足够权限的 人还是可以查看编辑器的内存和文件的内容. 如果你还用到了viminfo文件, 要注意文本寄存器也可能会把你的机密在这里泄露. 如果你的确是要高度 保密你的文件, 最好在一个没有联网的电脑上编辑, 使用足够强大的加密工 具, 用完就把电脑锁在一个安全的地方.

小结

没有绝对的安全,所以如果想要百分百的安全那恐怕太难了,这里只是简单第介绍了一个小技巧来加密文件,而且很方便、快速、省事 :)

(end)