所以我创建了一个文件并赋予它以下权限。
chmod u-rwx, g=rw, o=rx file
用户现在无法读取该文件,因为他没有任何读取权限,对吧?
我可以删除该文件,为什么呢? [编辑:正如穆鲁所指出的,这部分问题已得到解答这里]
但我仍然可以更改文件的权限。我可以给自己许可并阅读它。这是为什么?
谢谢你!
答案1
在unix风格的文件权限中,能够更改权限是成为文件所有者不可分割的一部分:如果您是所有者,则可以随时更改权限 - 如果不是,则无法更改权限完全没有权限。无论实际权限是什么,这都是正确的。
作为文件的所有者,您可以撤销所有 u 权限,并且由于最具体的权限集优先,因此即使您所属的组可以读取该文件,您也无法读取该文件,或者甚至对其他人。
删除文件不会对文件本身进行操作,而是对文件所在的目录进行操作:如果您对目录具有写访问权限,则您将能够删除其中的任何文件,除非粘滞位 (+t) 设置为目录;目录上的粘性位将添加额外的限制,防止任何人删除他们不拥有的内容。这通常用在用于临时文件的全局可写目录中,例如/tmp
和/var/tmp
。
通常,如果您不是文件的所有者,但具有对该文件的读访问权限,并且对该文件所在的目录具有写访问权限,您将能够通过复制该文件、删除该文件来间接获得该文件的所有权。原始文件并将副本重命名为与原始文件具有相同的名称。