1 qianbiTH 2018-07-16 19:23:35 +08:00 via Android ![]() 这个写估计不是重写了文件吧,只是重置了索引?非专业人士不负责猜测 |
2 qianbiTH 2018-07-16 19:28:02 +08:00 via Android ![]() 就跟 git 的一些机制类似?求大佬解答。你可以试试移动文件,看是否可行 |
3 momokuny OP @qianbiTH 恩,谢谢,google 了一堆 copy is only read permission,我感觉我是不是自己把简单的问题复杂化了。 |
4 mikeguan 2018-07-16 19:37:55 +08:00 via Android ![]() 应该是没有权限写入文件到没有 w 权限的目录的 权限对 root 相当于都不生效 你是不是用 root 操作的? |
![]() | 5 likuku 2018-07-16 19:40:01 +08:00 via iPhone ![]() 你源和目标混淆了吧 另外,新创建的目录和文件也都有个默认权限的概念 |
&nbs; 6 momokuny OP @mikeguan 用账户跟 root 都做了一遍,root 就不用说了,它想干啥都行,登陆其中一个账户做的时候,只是不明白为什么目录不需要 w 权限就可以对里面的文档进行复制,仅仅有 r 权限就可以。 |
7 qianbiTH 2018-07-16 20:18:05 +08:00 via Android ![]() 刚试了一下,我的答案纯属放屁,如果目录只有读权限,被拒绝了。4、5 楼成功 |
8 mikeguan 2018-07-16 20:31:25 +08:00 via Android @momokuny 这个和文件系统的存储有关 目录是是占用 block 的 里面存的是目录下所有文件名 一个文件名最长 255 字节 超过一个 block 大小自动扩展 目录的写权限 也就是你可以写东西到这个目录 block 里面(类比这个目录就是一个文件 你可以写这个文件即添加一个文件名 删除一个文件名) 目录的读权限也就是你可以读取目录 block 里面的内容 可以看到目录里面的文件名 具体操作权限还看目录下文件设置的权限 你如果从一个只有 rx 权限的目录里面复制一个文件到另一个目录里面 只有你对文件有权限操作就可以 |
9 qianbiTH 2018-07-16 20:50:47 +08:00 via Android ![]() 我再次用非 root 账户进行了操作,命令确实可以执行,不会报错,但是文件并没有被真正的复制到只有读权限的文件夹中。系统是 ubuntu 16.04.4 |
10 qianbiTH 2018-07-16 21:15:15 +08:00 via Android ![]() |
![]() | 11 likuku 2018-07-16 21:59:39 +08:00 ![]() "为什么目录可以只用 excute 权限就对里面的文档进行复制操作" 还是表述很混乱啊... 是把此目录里的文档复制到此目录外面?在此目录之下进行原地文件复制黏贴 /就地生成副本? 在此目录之下将某文档复制黏贴进此目录下的某个子目录?在此目录之下的子目录里进行文件的原地生成副本? 这些状况都是很不同的好嘛。是否能写入某处,只和某处目录本身的权限有关,具备 W 权限即可。 |
![]() | 12 likuku 2018-07-16 22:02:08 +08:00 ![]() 源目录具备 rx 权限,源文件具备 r 权限,即可满足最低读取源的需求。 目标目录具备 wx 权限,目标文件具备 w 权限 (若覆盖的话),即可满足最低写入需求。 |
13 momokuny OP 我统一回复一下回答的各位吧,真的真的很谢谢大家的回复,我已经感受到 V 站满满的热情了。果然光靠文字是很难将东西讲清楚,也许我的文字功底不好,也许我没有把思路理顺再问问题,也许我今天有点不在状态,总之种种原因吧,我直觉告诉我,其实这问题应该没有想象中那么复杂的,V 站发帖不允许发图片,那我就直接把《鸟哥 linux 私房菜》里的一段话全部完整复制过来,问题应该就清晰了,我也知道贴这么一大段话,大家会没耐心看,那我告诉大家直接看表格的最后一行就可以了,那一行就是我的问题了,也就是为什么 /dir1 将 file1 复制到 /dir2 的时候只需要,只需要用到“ x ”权限呢?而不需要也用上‘ w ’权限呢?好吧,以下是完全是书里的内容: /* 使用者操作功能限 如果你是搞不懂~,我理特殊的案例!假名,分是底下: /dir1/file1 /dir2 假你在在系使用 dmtsai ,那 /dir1, /dir1/file1, /dir2 三名,分需要『哪些最小的限』才能成各任? 哥整如下,如果你看得懂,恭喜你,如果看不懂~~未再! 操作作 /dir1 /dir1/file1 /dir2 重 取 file1 容 x r - 要能入 /dir1 才能到面的文件料! 修改 file1 容 x rw - 能入 /dir1 且修改 file1 才行! 行 file1 容 x rx - 能入 /dir1 且 file1 能作才行! 除 file1 案 wx - - 能入 /dir1 具有目修改的限即可! file1 到 /dir2 x r wx 要能 file1 且能修改 /dir2 的料 你可能,上面的表格中,很多候 /dir1 都不必有 r 耶!啥?我知道 /dir1 是目,也是抽!那抽的 r 代表『抽面有光』, 所以你能看到的抽的所有料名 (非容)。但你已知道面的料放在哪地方,那,有有光有差嘛?你是可以摸黑拿到料的!吧! 因此,上面很多作中,你只要具有 x 即可! r 是非必的!只是,有 r 的,使用 [tab] ,他就法自你名了!理解乎? */ |
14 qianbiTH 2018-07-16 23:25:45 +08:00 via Android ![]() 最后一段做了解释,作为仅有执行权限的目录,系统并不能读取然后知道里面的文件名,它对系统就是个黑盒子,但是由于你事先知道了该目录下存在 file1,即你已经知道了路径,而该文件你有读权限,且是对该文件进行复制操作,显然可以成功。如果你复制该目录,应该会提示失败。 我知道那个箱子就在那里,箱子不透明,但是我知道里面有一个唯一的球,可能还有三角板,还有把尺(但是三角形和长条形的东西多了去了),那我就用手放进去摸一摸,找到一样的。 win 的权限管理不一样,但感觉类似隐藏的文件夹,看不到,但是我知道路径的话可以打开。 最后是我自己的理解,不用过于纠结 711 还是 755。这个读的权限对目录来说仅作用于目录内的文件和目录的名称。对文件而言仅作用于文件内的内容。也就是说对于一个只读的目录我可以修改目录名,对于一个只读的文件我可以修改文件名。 |
15 momokuny OP @qianbiTH 谢谢,解释得很生动形象,该文件有读取权限,对它进行复制操作显然可以成功,当初我就觉得这个目录一定要有‘ w ’,( d-wx------),才可以对里面的文档进行复制操作,因为目录的这个 w 权限涉及太多关于目录下文档的一些操作,比如新建文档,删除文档,更名文档,诸如此类的操作,所以我才觉得复制文档这个操作也是属于目录的‘ w ’的权限,所以才感到奇怪为什么目录没有加‘ w ’也可以复制它里头的文档呢?这样的想法,现在,感觉还好,似乎理解了,当初只是对目录的这个 w 能干些什么,而不理解。 |
16 qianbiTH 2018-07-17 00:15:34 +08:00 via Android ![]() |
17 qianbiTH 2018-07-17 00:52:52 +08:00 via Android ![]() |
![]() | 18 flynaj 2018-07-18 12:13:10 +08:00 via Android 账户可能有特权,例如 root。 |