linux中普通用户能删除文件所有者和所有群都为root的文件的原因

第一次看到这样的问题,一开始没有头绪,上网查了,也没有具体的答案,所以就在模糊中与看到网上的某些解释,猜测一下。

首先我的实验环境是ubuntu 16.04,然后在我的虚拟机中都首先创建了两个新用户,分别为A,B,都各自在A,B用户群中。
查看A的家目录
从以上看出,用户A对A这个家目录具有写权限。所以现在我能从A里面创建一个新文件-----1。并在这个新文件里写入了一个a。
新文件1
可以看出,现在新文件1的所有者和所有群都为A,现在把文件1的所有者和所有群都转给root。
1的所有者和所有群转变为root
现在我们用B用户,去删除现在状态的1试试。
B尝试去删除1
看到没,B没有权限去删除1,这是为什么,是因为所有群和所有者的原因吗,现在我们试试把所有者和所有群变为B,试试能不能删除。
1所有者和所有群转为B
B再去删除1
发现没,B依旧不能删除1,这似乎在告诉我们,能不能删除一个文件,和所有者和所有群没有关系。
并且在以上实验中我们也发现,B用户对文件1也是有读写权限的,那么似乎也在告诉我们,和对这个文件的读写权利也没有关系。
于是,我无意中浏览到一些资料,猜想文件所在的文件目录,是否会影响用户对这个文件的权限。1的上级目录为A,而A的文件目录的写权限只对A开放,那么当然,我们试试再将1的所有者和所有群都转换为root,然后,试着用A去删除1。
linux中普通用户能删除文件所有者和所有群都为root的文件的原因_第1张图片
显而易见,发现用户A可以删除1。
那么,已经验证了一点我的猜想,接下来,我尝试用用户B,不授予它对目录A的写权限,试着去删除1试试。
linux中普通用户能删除文件所有者和所有群都为root的文件的原因_第2张图片
B不能删除1。那么现在赋予B对目录A的写权限。然后尝试去删除1。
linux中普通用户能删除文件所有者和所有群都为root的文件的原因_第3张图片
当赋予B对目录A的写权限后,发现没,B能删除1了。

所以综上所述,我认为一个用户是否对这个文件具有删除(即取消链接)的权限,在于它的上级目录,你是否对他有写的权限。

后记:在我思考完这些之后,我的一个学长,发了一个有关于这个问题的论坛链接给我,有兴趣的同学可以看看,它里面似乎讲的更深刻。
有关论坛链接

你可能感兴趣的:(思考实验,linux)