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

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