第十七章:第18节Linux用户与文件——权限针对文件强制操作

更新于:2018-12-30 16:05:23

使用vi编辑文档保存,在权限不足的情况下,都会出现什么问题?是不是可以使用强制保存(写入)呢?这节我们做几个测试看一下。


1)当前账户是文件属主,对文件没有读(r)权限,有写(w)权限。


1.png


vi打开


1.png

1.png


因为没有读权限,所以打开的是空文件


编辑内容,使用

:wq

保存。


1.png


普通保存是不成功的,那使用

:wq!

强制保存。


1.png


是可以保存的,新写入内容覆盖了原内容。


2)当前账户是文件属主,对文件有读(r)权限,没有写(w)权限。


1.png


vi打开,编辑完内容,普通保存


不成功,强制保存


1.png


保存成功。


所以说,当文件是自己的,就算没有写(w)权限,也可以强制保存成功。


既然可以强制修改自己所属文件的内容,那把自己文件写权限去掉还有什么意义?


答案:是有意义的。

①把自己文件写(w)权限去掉,一部分目的标记此文件需谨慎修改。

②当用PHP的file_put_contents等函数修改Linux上的文件时,都是普通修改,没有写权限就会修改失败。不能强制修改,只能使用chmod函数给文件添加了写权限才能修改。


3)当前账户不是文件属主,对文件有读(r)权限,没有写(w)权限。


在第16节,我们做过一次测试,强制保存没有成功。这次再来演示下:

1.png


vi打开,编辑完内容,直接强制保存


1.png


不能保存!


看下文件的上级目录:


1.png


目录ubuntu是a.sh文件的上级目录,它对其他用户的权限是“r-x”,没有写权限。假如把这个目录的权限改成:


1.png


赋予其他用户写的权限,再切换到“nanshen账户”,编辑a.sh文件,看不能不强制保存。


1.png


成功了。但是文件的用户和用户组也变成了修改者及修改者对应的用户组。


总结:


当前账户不是文件属主,对文件有读(r)权限,没有写(w)权限:


①对上级目录有读(r)权限,没有写(w)权限,强制保存文件不成功。

②对上级目录有读(r)权限,也有写(w)权限,强制保存文件成功;文件被强行写保存后其主人 和 组别就变为修改者对应的属组。


就算其他用户组对文件没有读权限,①②两条也符合。


注意:


写(w)权限,是最危险的一个权限,最容易造成安全问题的一个权限,最好不要给其他用户组分配。对于一个普通的文件或目录,建议设置为“755”。