加入社区

订阅:www.yunweipai.com/feed

QQ群:
1群:201777608 - 运维综合
2群:526871767 - 运维综合
3群:1689067 - Linux Shell脚本

微博:weibo.com/tektea

微信:yunweipai(或扫描以下二维码)

合作伙伴

小猪动图 - GIF动图素材库_GIF在线工具

SUSE Linux中储存状态信息的viminfo和vimrc详解

最近公司在审计所有产品和方案的安全规格,比如:操作系统的日志中禁止包含密码明文或password之类的。几乎将系统安全武装到牙齿了,今天就遇到一个问题:测试发现SUSE Linux操作系统的/root/.viminfo文件中包含了password字样,和同事确认后了解到:原来.viminfo文件存放于Linux系统的用户HOME目录(家目录)下,会记录该用户执行vi或vim的历史记录。

如果为了安全或某些原因,不希望其他用户查看到这些vi/vim操作记录,那么可以通过以下方法关闭.viminfo的记录:
1. 关闭所有用户的viminfo记录——修改/etc/vimrc文件,在该文件最后一行中增加set viminfo=
2. 关闭指定用户的viminfo记录——修改该用户HOME目录下的.vimrc文件,在该文件最后一行中增加set viminfo=

同时在网上搜集整理了下关于viminfo的详细说明,在这里也汇总分享下……

1. 信息文件viminfo被设计为储存Linux以下状态信息:
命令行和模式搜索的历史记录
寄存器内文本
各种文件的标记
缓存器列表
全局变量

2. 你每次退出 vi/vim,它就把此种信息存放在一个文件内,即.viminfo
当vi/vim重新起动时,就读取这个信息文件, 而那些信息就被还原了。

3. vimrc文件中的选项‘viminfo’的默认设定是还原有限的几种信息,你也许希望设定它记住更多的信息:

其设置的规则大致如下:
set viminfo=string
其中字符串 “string” 规定了什么要储存。

该字符串的语法为一个选项字符跟一个参数,选项和参数组成的对子之间由逗号分隔。

来看一下你可以怎样构建你自己的 viminfo 字符串。首先,选项 ‘ 用于规定你为多少个文件保存标记 (a-z)。为此选项挑一个美妙的偶数 (比如 1000)。

你的命令现在看起来像这样:
set viminfo=’1000

选项 f 控制是否要储存全局标记 (A-Z 和 0-9)。如果这个选项设为0,那么什么也不存储。如果设为1,或你对f选项不作规定,那么标记就被存储。你要这个功能,现在你有了:
set viminfo=’1000,f1

选项 < 控制着每个寄存器内保存几行文本。默认情况下,所有的文本行都被保存。如果设为0,则什么也不保存。为了避免成千上万行文本被加入你的信息文件 (那些文本可能永远也没用,徒然使vi/vim 起动得更慢),你采用500行的上限,那么以上的几个规则最终设置就如下了: set viminfo='1000,f1,<500 另外,如果要深入研究,那么下面这些选项可以帮到你: : 保存命令行历史记录内的行数 @ 保存输入行历史记录内的行数 / 保存搜索历史记录内的行数 r 可移介质,其中没有任何标记存入 (可用多次) ! 以大写字母开头的全局变数,并且不含有小写字母 h 起动时解除选项 'hlsearch' 的高亮度显示 % 缓冲列表 (只有当不带参数起动 Vim 时才还原) c 用编码 'encoding' 转换文本 n 用于 viminfo 文件的名称 (必须为最后一项选项)

转载请注明:运维派 » SUSE Linux中储存状态信息的viminfo和vimrc详解

0
2.9k
3
  1. 其实这个也不会影响安全。人家居然可以登录到你后台查看文件,还有啥不能干的?

  2. 这个确实应该是安全加固的范畴,登陆你的后台,能够看到你硬盘上收藏了陈老师的作品,不过如果能够嗅探到你近期就翻来覆去的看很傻很天真的片段,而且频繁的检索某些关键字,或许会挖掘出更有价值的东西