关于目录内 RWX 权限的学习疑问 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
momokuny
V2EX    Linux

关于目录内 RWX 权限的学习疑问

  •  
  •   momokuny 2018-07-16 19:14:33 +08:00 2564 次点击
    这是一个创建于 2651 天前的主题,其中的信息可能已经有所发展或是发生改变。
    V 站各位大神好,首先很感谢各位大神百忙抽空看小弟的发帖,小弟目前学习到权限部分遇到疑问了,长话短说吧。

    我按照书上的理解,目录的 w 权限是跟目录内文档的变动有关系,比如:移动,删除,建立新的文档,等等。
    有一点我就不明白了,比如复制一个目录内的文档到另一个目录内,用 cp 命令,目录的权限没有 w,的情况下照样可以复制里面的文档?我也谷歌百度过了,复制操作是只属于 r 权限,不需要用到 w,但不是说好目录内文档的变更是也关 w 的事吗?到这里就有点乱了。
    第 1 条附言    2018-07-16 20:29:15 +08:00
    今天有点神志不清,首先很感谢回答的各位,另外发现原来自己问问题问错了,上面的一大堆都不用看了,就简单一句,为什么目录可以只用 excute 权限就对里面的文档进行复制操作?我也不想弄清楚了,越学越火,此贴终结!!!
    18 条回复    2018-07-18 12:13:10 +08:00
    qianbiTH
        1
    qianbiTH  
       2018-07-16 19:23:35 +08:00 via Android   1
    这个写估计不是重写了文件吧,只是重置了索引?非专业人士不负责猜测
    qianbiTH
        2
    qianbiTH  
       2018-07-16 19:28:02 +08:00 via Android   1
    就跟 git 的一些机制类似?求大佬解答。你可以试试移动文件,看是否可行
    momokuny
        3
    momokuny  
    OP
       2018-07-16 19:33:39 +08:00
    @qianbiTH 恩,谢谢,google 了一堆 copy is only read permission,我感觉我是不是自己把简单的问题复杂化了。
    mikeguan
        4
    mikeguan  
       2018-07-16 19:37:55 +08:00 via Android   2
    应该是没有权限写入文件到没有 w 权限的目录的 权限对 root 相当于都不生效 你是不是用 root 操作的?
    likuku
        5
    likuku  
       2018-07-16 19:40:01 +08:00 via iPhone   2
    你源和目标混淆了吧

    另外,新创建的目录和文件也都有个默认权限的概念
    momokuny
    &nbs;   6
    momokuny  
    OP
       2018-07-16 20:17:18 +08:00
    @mikeguan 用账户跟 root 都做了一遍,root 就不用说了,它想干啥都行,登陆其中一个账户做的时候,只是不明白为什么目录不需要 w 权限就可以对里面的文档进行复制,仅仅有 r 权限就可以。
    qianbiTH
        7
    qianbiTH  
       2018-07-16 20:18:05 +08:00 via Android   1
    刚试了一下,我的答案纯属放屁,如果目录只有读权限,被拒绝了。4、5 楼成功
    mikeguan
        8
    mikeguan  
       2018-07-16 20:31:25 +08:00 via Android
    @momokuny 这个和文件系统的存储有关 目录是是占用 block 的 里面存的是目录下所有文件名 一个文件名最长 255 字节 超过一个 block 大小自动扩展
    目录的写权限 也就是你可以写东西到这个目录 block 里面(类比这个目录就是一个文件 你可以写这个文件即添加一个文件名 删除一个文件名)
    目录的读权限也就是你可以读取目录 block 里面的内容 可以看到目录里面的文件名 具体操作权限还看目录下文件设置的权限
    你如果从一个只有 rx 权限的目录里面复制一个文件到另一个目录里面 只有你对文件有权限操作就可以
    qianbiTH
        9
    qianbiTH  
       2018-07-16 20:50:47 +08:00 via Android   1
    我再次用非 root 账户进行了操作,命令确实可以执行,不会报错,但是文件并没有被真正的复制到只有读权限的文件夹中。系统是 ubuntu 16.04.4
    qianbiTH
        10
    qianbiTH  
       2018-07-16 21:15:15 +08:00 via Android   1
    我越来越糊涂了,第一回你说的是往只有 r 权限的目录里面复制一个文件。
    第二回好像是从只有 r 权限的目录往外复制文件。
    第三回附言是只有执行权限。
    likuku
        11
    likuku  
       2018-07-16 21:59:39 +08:00   1
    "为什么目录可以只用 excute 权限就对里面的文档进行复制操作"

    还是表述很混乱啊...

    是把此目录里的文档复制到此目录外面?在此目录之下进行原地文件复制黏贴 /就地生成副本?
    在此目录之下将某文档复制黏贴进此目录下的某个子目录?在此目录之下的子目录里进行文件的原地生成副本?

    这些状况都是很不同的好嘛。是否能写入某处,只和某处目录本身的权限有关,具备 W 权限即可。
    likuku
        12
    likuku  
       2018-07-16 22:02:08 +08:00   2
    源目录具备 rx 权限,源文件具备 r 权限,即可满足最低读取源的需求。

    目标目录具备 wx 权限,目标文件具备 w 权限 (若覆盖的话),即可满足最低写入需求。
    momokuny
        13
    momokuny  
    OP
       2018-07-16 22:09:06 +08:00
    我统一回复一下回答的各位吧,真的真的很谢谢大家的回复,我已经感受到 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] ,他就法自你名了!理解乎?

    */
    qianbiTH
        14
    qianbiTH  
       2018-07-16 23:25:45 +08:00 via Android   1
    最后一段做了解释,作为仅有执行权限的目录,系统并不能读取然后知道里面的文件名,它对系统就是个黑盒子,但是由于你事先知道了该目录下存在 file1,即你已经知道了路径,而该文件你有读权限,且是对该文件进行复制操作,显然可以成功。如果你复制该目录,应该会提示失败。
    我知道那个箱子就在那里,箱子不透明,但是我知道里面有一个唯一的球,可能还有三角板,还有把尺(但是三角形和长条形的东西多了去了),那我就用手放进去摸一摸,找到一样的。
    win 的权限管理不一样,但感觉类似隐藏的文件夹,看不到,但是我知道路径的话可以打开。

    最后是我自己的理解,不用过于纠结 711 还是 755。这个读的权限对目录来说仅作用于目录内的文件和目录的名称。对文件而言仅作用于文件内的内容。也就是说对于一个只读的目录我可以修改目录名,对于一个只读的文件我可以修改文件名。
    momokuny
        15
    momokuny  
    OP
       2018-07-17 00:11:29 +08:00
    @qianbiTH 谢谢,解释得很生动形象,该文件有读取权限,对它进行复制操作显然可以成功,当初我就觉得这个目录一定要有‘ w ’,( d-wx------),才可以对里面的文档进行复制操作,因为目录的这个 w 权限涉及太多关于目录下文档的一些操作,比如新建文档,删除文档,更名文档,诸如此类的操作,所以我才觉得复制文档这个操作也是属于目录的‘ w ’的权限,所以才感到奇怪为什么目录没有加‘ w ’也可以复制它里头的文档呢?这样的想法,现在,感觉还好,似乎理解了,当初只是对目录的这个 w 能干些什么,而不理解。
    qianbiTH
        16
    qianbiTH  
       2018-07-17 00:15:34 +08:00 via Android   1
    我的解释可能也不是很对,可能还与文件类型有关。
    更复杂的情况暂时不想试了,还有实际执行中会提权什么的(是么?)
    qianbiTH
        17
    qianbiTH  
       2018-07-17 00:52:52 +08:00 via Android   1
    @momokuny 别纠结了,可能涉及到规定和最开始的设计。一米为什么那么长啊,一千克为什么那么重啊。。。或者以后会有答案,我搜的一哥们的:
    flynaj
        18
    flynaj  
       2018-07-18 12:13:10 +08:00 via Android
    账户可能有特权,例如 root。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2572 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 04:07 PVG 12:07 LAX 21:07 JFK 00:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86