1
qianbiTH 2018-07-16 19:23:35 +08:00 via Android 1
这个写估计不是重写了文件吧,只是重置了索引?非专业人士不负责猜测
|
2
qianbiTH 2018-07-16 19:28:02 +08:00 via Android 1
就跟 git 的一些机制类似?求大佬解答。你可以试试移动文件,看是否可行
|
3
momokuny OP @qianbiTH 恩,谢谢,google 了一堆 copy is only read permission,我感觉我是不是自己把简单的问题复杂化了。
|
4
mikeguan 2018-07-16 19:37:55 +08:00 via Android 2
应该是没有权限写入文件到没有 w 权限的目录的 权限对 root 相当于都不生效 你是不是用 root 操作的?
|
5
likuku 2018-07-16 19:40:01 +08:00 via iPhone 2
你源和目标混淆了吧
另外,新创建的目录和文件也都有个默认权限的概念 |
6
momokuny OP @mikeguan 用账户跟 root 都做了一遍,root 就不用说了,它想干啥都行,登陆其中一个账户做的时候,只是不明白为什么目录不需要 w 权限就可以对里面的文档进行复制,仅仅有 r 权限就可以。
|
7
qianbiTH 2018-07-16 20:18:05 +08:00 via Android 1
刚试了一下,我的答案纯属放屁,如果目录只有读权限,被拒绝了。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 1
我再次用非 root 账户进行了操作,命令确实可以执行,不会报错,但是文件并没有被真正的复制到只有读权限的文件夹中。系统是 ubuntu 16.04.4
|
10
qianbiTH 2018-07-16 21:15:15 +08:00 via Android 1
|
11
likuku 2018-07-16 21:59:39 +08:00 1
"为什么目录可以只用 excute 权限就对里面的文档进行复制操作"
还是表述很混乱啊... 是把此目录里的文档复制到此目录外面?在此目录之下进行原地文件复制黏贴 /就地生成副本? 在此目录之下将某文档复制黏贴进此目录下的某个子目录?在此目录之下的子目录里进行文件的原地生成副本? 这些状况都是很不同的好嘛。是否能写入某处,只和某处目录本身的权限有关,具备 W 权限即可。 |
12
likuku 2018-07-16 22:02:08 +08:00 2
源目录具备 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 1
最后一段做了解释,作为仅有执行权限的目录,系统并不能读取然后知道里面的文件名,它对系统就是个黑盒子,但是由于你事先知道了该目录下存在 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 1
|
17
qianbiTH 2018-07-17 00:52:52 +08:00 via Android 1
|
18
flynaj 2018-07-18 12:13:10 +08:00 via Android
账户可能有特权,例如 root。
|