使用vi编辑文档保存,在权限不足的情况下,都会出现什么问题?是不是可以使用强制保存(写入)呢?这节我们做几个测试看一下。
1)当前账户是文件属主,对文件没有读(r)权限,有写(w)权限。
vi打开
因为没有读权限,所以打开的是空文件
编辑内容,使用
:wq
保存。
普通保存是不成功的,那使用
:wq!
强制保存。
是可以保存的,新写入内容覆盖了原内容。
2)当前账户是文件属主,对文件有读(r)权限,没有写(w)权限。
vi打开,编辑完内容,普通保存:
不成功,强制保存:
保存成功。
所以说,当文件是自己的,就算没有写(w)权限,也可以强制保存成功。
既然可以强制修改自己所属文件的内容,那把自己文件写权限去掉还有什么意义?
答案:是有意义的。
①把自己文件写(w)权限去掉,一部分目的标记此文件需谨慎修改。
②当用PHP的file_put_contents等函数修改Linux上的文件时,都是普通修改,没有写权限就会修改失败。不能强制修改,只能使用chmod函数给文件添加了写权限才能修改。
3)当前账户不是文件属主,对文件有读(r)权限,没有写(w)权限。
在第16节,我们做过一次测试,强制保存没有成功。这次再来演示下:
vi打开,编辑完内容,直接强制保存:
不能保存!
看下文件的上级目录:
目录ubuntu是a.sh文件的上级目录,它对其他用户的权限是“r-x”,没有写权限。假如把这个目录的权限改成:
赋予其他用户写的权限,再切换到“nanshen账户”,编辑a.sh文件,看不能不强制保存。
成功了。但是文件的用户和用户组也变成了修改者及修改者对应的用户组。
总结:
当前账户不是文件属主,对文件有读(r)权限,没有写(w)权限:
①对上级目录有读(r)权限,没有写(w)权限,强制保存文件不成功。
②对上级目录有读(r)权限,也有写(w)权限,强制保存文件成功;文件被强行写保存后其主人 和 组别就变为修改者对应的属组。
就算其他用户组对文件没有读权限,①②两条也符合。
注意:
写(w)权限,是最危险的一个权限,最容易造成安全问题的一个权限,最好不要给其他用户组分配。对于一个普通的文件或目录,建议设置为“755”。