V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mmdsun
V2EX  ›  问与答

如何创建一个只能查看但不能删除文件?

  •  1
     
  •   mmdsun · 2018-05-06 00:14:41 +08:00 · 3268 次点击
    这是一个创建于 2393 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需要在 linux 和 win 上如何创建一个只能查看不能删除文件、或文件夹。linux 上面已经解决。

    windows 上面不知道的 怎么操作。 也找不到关于 win 的目录权限的相关资料,感觉十分复杂。

    右键文件夹属性里面,我凭感觉设置一通, 但是还是可以删除。不知道哪里设置不对。(当前账号和 everyone 都设置过)

    avatar

    23 条回复    2018-05-07 16:40:54 +08:00
    mmdsun
        1
    mmdsun  
    OP
       2018-05-06 00:22:38 +08:00
    对了 我图片传的网盘。 这个网盘厉害了。恐怕有 10 年了 今天发现还活着。
    Bryan0Z
        2
    Bryan0Z  
       2018-05-06 00:39:50 +08:00 via Android
    设个只读?
    huiyifyj
        3
    huiyifyj  
       2018-05-06 00:56:15 +08:00 via Android
    @mmdsun 看不了图片啊😯
    webjin1
        4
    webjin1  
       2018-05-06 01:03:50 +08:00 via Android
    linux 是不是 chattr +i
    fyyz
        5
    fyyz  
       2018-05-06 01:05:17 +08:00 via Android
    smb 挂载,设置权限只能读取不能写入
    1stPLACE
        6
    1stPLACE  
       2018-05-06 01:16:27 +08:00
    可你这个网盘并不能外链
    wevsty
        7
    wevsty  
       2018-05-06 01:17:53 +08:00
    Windows 上对只读文件调用 DeleteFile 是会失败的。
    至于 NTFS 权限,设置一下 everyone 的删除权限为拒绝应该就可以。
    cdwyd
        8
    cdwyd  
       2018-05-06 01:17:54 +08:00 via Android
    弄个网页
    mmdsun
        9
    mmdsun  
    OP
       2018-05-06 01:18:03 +08:00
    @huiyifyj 不是吧。是移动的网络吗?
    innoink
        10
    innoink  
       2018-05-06 01:18:15 +08:00 via Android
    我记得我大一的时候做过文件系统过滤驱动,能过滤所有文件操作,不知道现在还行不行
    mmdsun
        11
    mmdsun  
    OP
       2018-05-06 01:31:31 +08:00
    @wevsty everyone 删除设置的拒绝还是不行。不知道是 bug 还是没有设置好
    mmdsun
        12
    mmdsun  
    OP
       2018-05-06 01:35:03 +08:00
    @webjin1 应该是的 ,百度 copy 的。我只记得是 chattr 打头了
    wevsty
        13
    wevsty  
       2018-05-06 01:40:27 +08:00
    @mmdsun
    一般来说我会认为是你没有设置好。
    geelaw
        14
    geelaw  
       2018-05-06 01:40:46 +08:00
    怎么会是 bug ?用最简单的思考就知道这要是一个 bug 也不能是这么晚才发现的吧?

    答案是因为,虽然你对文件 /文件夹拒绝了删除的权限,但该文件 /文件夹所在的文件夹,你具有“删除子文件夹和文件”权限。

    考虑 C:\A\B\C 是一个文件,又假设 C:\A 上 Everyone 的 effective access 是 Full control,考虑下面的情况:

    若 B 上 Everyone 的 effective access 是 Full control,但 C 上拒绝了删除,则你可以删除 C,因为你允许 Everyone Delete subfolders and files in B。

    若 B、C 上 Everyone 的 effective access 不包含任何删除权限,则 B、C 都不能被删除。
    mmdsun
        15
    mmdsun  
    OP
       2018-05-06 01:42:48 +08:00
    这样也不行,我就是右键文件 在属性-- 安全 里面改的 不知道还有没有别的方法 。

    这是我对一个单独的 文件 设置的 删除 设置的拒绝 还是可以删掉。

    ![img]( http://ys-i.ys168.com/597891853/mnojxvm4N1H6L337LPFK/test.PNG)
    geelaw
        16
    geelaw  
       2018-05-06 01:49:44 +08:00
    此外 #14,你可能会疑惑为什么 B 被拒绝 Delete,但是 A 上你有 Delete subfolders and files 的权限,你却不能删除 B ——既然 B 是 A 的 subfolder ?

    答案是,删除一个文件夹的条件是该文件夹非空,因此要删除 B 必须先删除 C,Delete subfolders and files 仅应用于 直接子项目,因此 C 不能被删除,所以 B 也不能。
    ericls
        17
    ericls  
       2018-05-06 04:46:51 +08:00 via iPhone
    immutable
    honeycomb
        18
    honeycomb  
       2018-05-06 08:14:52 +08:00 via Android
    让用户不是这个文件的所有者,剥夺用户对这个文件读以外的权限。

    但最后可能还是要通过禁止管理员权限来落实。
    echaos
        19
    echaos  
       2018-05-06 13:58:47 +08:00 via Android
    你可以试着手动删除 Adobe 文件
    gam2046
        20
    gam2046  
       2018-05-06 15:33:36 +08:00   ❤️ 1
    cacls 了解一下,根据以往的经验,这个比设置 NTFS 权限靠谱多了,换管理员、重装系统都没用,该不能访问,就是不能访问
    crb912
        21
    crb912  
       2018-05-06 16:09:49 +08:00 via Android
    windows 下,还有不能被删除的文件吗?似乎只要没被进程占用,就可以被删除。
    mmdsun
        22
    mmdsun  
    OP
       2018-05-06 17:50:19 +08:00
    @crb912 可以配置权限呀。NTFS 权限
    geelaw
        23
    geelaw  
       2018-05-07 16:40:54 +08:00
    我感到十分困惑,因为 #14 #16 已经给出了完整的解答,居然没有任何人看起来去 acknowledge 这个解答——仿佛问题还没有解决一样。

    另外:

    @ericls #17 没看懂。

    @honeycomb #18 禁止管理员权限是必须的,因为管理员总是可以 take ownership,进而修改 ACL。你可能漏看了 #14 的提示——简单拒绝删除是没有用的。

    @gam2046 #20 这个说法是错误的,因为 cacls/icacls 和文件资源管理器设置权限的功能是一样的,都是设置 NTFS 权限,不存在差别。不靠谱的可能是使用的人,而不是工具。

    @crb912 #21 权限控制都是依赖操作系统完成的,自然你必须要设置恰当的权限才能完成。文件被进程占用而不能被删除也是操作系统完成的。“就可以被删除”显然是假设了管理员权限,但如果假设管理员权限,你就可以停止占用一个文件的进程,然后删除文件。(即使文件是被 Windows 核心进程占用,具有管理员权限也可以去调试这些进程,并完成相应的操作。)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2608 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:01 · PVG 19:01 · LAX 03:01 · JFK 06:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.