在Linux系统中,文本编辑器Vim有个内置功能,可以使用密码加密文件,Vim的文件加密功能不是很强,但比较实用,因为不必要借助其他软件即可实现。

打开网易新闻 查看更多图片

在我们常见的Linux发行版中,自带的Vim基本都可以支持文件加密,如果执行加密命令之后,提示“Sorry,the command is not available for this version”则表示当前版本不支持加密功能。

image

我们加密文件通常有两种情况,一是需要直接创建加密文件,二是需要对已有的文件进行加密。下面我们来分别介绍一下这两种情况下如何进行操作。

创建加密文件

创建加密文件很简单,我们只需要执行:

$ vim -x filename

这个命令将创建一个新的文件,并提示需要设置加密密码。我们输入两次密码之后,就进入文件编辑界面。

image

然后,每次尝试使vim打开该文件时,都需要该密码才能进入编辑。如果你不输入任何东西,直接回车或者输入密码不正确时,都会显示文件内容为乱码;只有当输入正确密码后,才会正常显示文件内容。如果我们使用其他编辑器打开文件,发现并没有提示我们需要输入密码,文本内容显示的是乱码,比如使用 vi :

打开网易新闻 查看更多图片

加密现有文件

比如我们 /mnt 目录下已存在一个 newfile 的文件,现在需要对该文件进行加密。我们首先用 vim 打开该文件:

$ vim newfile

打开之后按 Esc 进入命令模式,输入:

:X //请注意,这里X是大写,然后回车

回车之后,会提示要求输入两次密码。此时,文件已经加密完成了,但是还缺少最后重要的一步,就是再次在命令行输入保存或者保存退出命令。

:w
或者
:wq

到此为止,文件加密完成。

解密文件

解密文件也相当简单,解密文件的前提是我们能够使用 vim 正确的打开文件,打开文件之后进入命令模式,执行如下命令:

:set key=

然后仍然要记得执行 :wq 保存。

或者也可以这样解密:

输入正确的密码打开文件后,在命令模式下使用 :X 指令(请注意这里X也是大写),然后给一个空密码。

此时,文件已经正常解密了,下一次打开文件的时候就可以直接打开了。

虽然 vim 加密功能使用方便,但是有时候可能也会引起一些问题,因为就算文件加密了,但是没有对写入权限进行限制。我们脑补一下这个场景:我们打开一个加密文件,由于输入了错误的密码,虽然打开了文件,但是内容显示的是乱码。这个时候我们需要执行 :q命令退出,但是由于可能一些习惯,输入了 :wq 命令,导致乱码内容也写入到原文件,有可能造成数据丢失。