为什么vim的强制写不好用?
一个初学Linux的人,一般都安装图形界面,而安装图形界面时,都会建一个普通用户,而一般都会用这个普通用户登录系统(注:书上也都是这样建议的,root超级用户很危险的,容易把一般重要的配置文件删除。)
最常见的一个情景:一个普通用户想编辑一下 /etc 目录下的某个文件,但这个目录的文件一般对普通用户来说,都是只读的。以/etc/inittab文件为例,其用户权限如下:
-rw-r--r--. 1 root root 884 Feb 19 04:51 inittab
其它用户只有只读权限,没有写权限。
普通用户在编辑后 /etc/inittab文件,因为没有写权限,直接输入命令 :w ,是写不了的,这很好理解。
不是还有强制写吗,输入 :w!,怎么也不行呀?vim这个大骗子!!!
如果vim真能写成功,这个安全漏洞的等级也能与openssl的“心脏出血”有的一拼。
vim所谓的强制写是用户有能力把这个文件改成有写权限的,只是当前设置的权限是只读而已。
再举一个例子,
-r--r--r--. 1 syy syy 16 Apr 15 17:20 mytest.txt
对于用户syy而言,mytest.txt文件对其有读权限,使用vim编辑后,不能直接使用 :w 来写这个文件,但可以使用 :w!来强制写。
为什么这次就可以了,因为mytest.txt的拥有者是syy用户,我有能力把mytest.txt文件改成有写权限的。
[syy@syy ~]$ chmod u+w mytest.txt
[syy@syy ~]$ ll mytest.txt
-rw-r--r--. 1 syy syy 16 Apr 15 17:20 mytest.txt