他人读写文件时修改其权限的影响?两类场景及操作失败疑问
文件权限变更对已打开文件读写操作的影响
核心结论:文件权限仅在打开文件时进行校验,一旦文件成功打开并获得文件描述符,后续修改文件权限不会影响已进行中的读写操作。以下针对两个场景具体分析:
场景1:正在进行的读取操作
- 前提:其他用户基于文件原644权限(所有者读写、组/其他读)成功打开fileA并处于读取状态,说明该用户具备读权限(要么是所有者/组,要么是其他用户)。
- 执行
chmod 600 fileA后:该用户的读取操作不会中途失败。因为打开文件时已经通过权限校验,操作系统会为该进程分配带有读权限的文件描述符,后续读写操作直接使用这个描述符,不再检查文件的当前权限。直到该用户关闭fileA,后续再次打开时才会因为600权限(仅所有者读写)被拒绝。
场景2:正在进行的写入操作
- 前提说明:644权限下,仅文件所有者具备写权限,所以场景中能打开fileA进行写入的用户必然是文件所有者。
- 执行
chmod 600 fileA后:该用户的写入操作不会中途失败。和读取场景逻辑一致,打开时已通过权限校验并获得带写权限的文件描述符,后续权限变更不会影响已打开描述符的正常写入,直到文件被关闭。
内容的提问来源于stack exchange,提问作者konchy
相关产品推荐
相关产品推荐

