1
zengxs 2020-09-29 14:21:02 +08:00
浏览目录需要 r 权限
进入目录需要 x 权限 向目录写入文件需要 w 权限 不检查每级目录 |
2
Chenamy2017 2020-09-29 14:23:16 +08:00
你要操作文件,那么你就检查该文件的权限,你要操作目录就检查目录的权限。
|
3
NoobX 2020-09-29 14:39:52 +08:00
不知道你用的什么语言
如果是用 C,直接使用 open() syscall,check 返回值和 errno 即可,根据 errno 确定出错原因,流程没那么复杂 |
4
Mutoo 2020-09-29 14:45:12 +08:00
需要递归权限的。如果父目录无法访问,就算里面的文件是 777 你也没办法读取。
另外可以用 namei 这个命令检查整个路径的权限。如果中间有某个路径权限有问题,一下就可以发现。 |
5
eudore OP @NoobX 使用的 go 写的,需要验证 sftp 登录用户的是否具有操作一个 sftp 请求文件的权限。
只有一个需要验证的用户名和目标目录,现在实现权限验证逻辑,但是不请求一个操作需要什么样的权限(文件目录的 rwx 一共六种情况需要什么样的父目录权限)。 |
7
eudore OP 个人感觉是对一个文件或目录操作时,是需要其父目录每级 x 权限。
|
9
libook 2020-09-29 15:00:50 +08:00
需要检查每一级目录的权限,但并不一定每一级目录都必须给所有权限。
可以参考这个 https://wiki.archlinux.org/index.php/Users_and_groups_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) |
10
libook 2020-09-29 15:04:27 +08:00
中文版 Wiki 的“Linux 文件权限”的链接貌似挂了,看这个 https://www.linux.com/training-tutorials/understanding-linux-file-permissions/
|