当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)

一次偶然得出的亲身心得,于是记录下来提醒自己安全无小事,事事(时时)记心间。vi/vim大家再熟悉不过了,也许每天都在用它,但有时却常常容易忽略掉一些东西,一次在使用VIM修改系统配置时,发现sudo和VI/VIM相遇后藏着的鲜为人知的小秘密。
一般服务器安装配置时常管理使用的各自用户,为了服务器安全很少直接用ROOT用户进行常规操作,但有时为了提权限的需要,因此通常做法是配置sudo用户,方便快捷。特别对于系统类配置文件,需要使用到ROOT用户权限才能操作,由于我们创建了sudo用户,便可以使用sudo再加相应命令进行操作,大大方便了我们的管理。
今天讨论和展示的是我们在进行sudo用户提权时一定要科学化,全面化审视,慎重再慎重,稍有遗漏可能造成很大的安全风险或事故。
下面展示下配置sudo与VI/VIM错误相遇后的可能发生的情况。
直接配置sudo用户,未做任何限制的做法,相当于直接建了N个ROOT用户毫无区别。

当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
让我们来看看当使用sudo和VI/VIM后:(先用用户jerry登陆测试)
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
先用ID命令查看下当前用户及组
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
接着尝试sudo vi cuocuocuo.txt
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
进入VI编辑器后按SHIFT:然后输入sh后回车
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
我们再看下发生了什么:
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
这不是ROOT用户吗,再次确认
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
硬是呢:不用ROOT密码可以直接使用ROOT权限。
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
不能看的目录也能直接看了(其它操作ROOT你懂的):
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
其它用户登陆按这个步骤操作也是一样的,这里就不演示了。
再有权限分配时错漏分配不当或遗漏的情况,总之就是让sudo 和VI/VIM正常地相遇了。
由于某种原因VIM未被禁止错给:(这次用VIM)假设原来系统没VIM,但是其它用户有YUM等安装权限后,进行了安装。
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
同样是jerrry用户:
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
执行:sudo vim cuocuocuo.txt 输入jerry用户密码
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
同样进入VIM编辑器后按SHIFT:然后输入sh后回车
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
观察变化:
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT
已经切换为ROOT用户
当sudo用户偶遇上VI/VIM发生了什么?(sudo+vi/vim=root)藏在你身后的ROOT

Sudo+vi/vim=root
安全无小事,时刻记心间