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

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

  •  1
     
  •   mmdsun · 193 天前 · 1601 次点击
    这是一个创建于 193 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    avatar

    23 回复  |  直到 2018-05-07 16:40:54 +08:00
        1
    mmdsun   193 天前
    对了 我图片传的网盘。 这个网盘厉害了。恐怕有 10 年了 今天发现还活着。
        2
    Bryan0Z   193 天前 via Android
    设个只读?
        3
    huiyifyj   193 天前 via Android
    @mmdsun 看不了图片啊😯
        4
    webjin1   193 天前 via Android
    linux 是不是 chattr +i
        5
    fyyz   193 天前 via Android
    smb 挂载,设置权限只能读取不能写入
        6
    1stPLACE   193 天前
    可你这个网盘并不能外链
        7
    wevsty   193 天前
    Windows 上对只读文件调用 DeleteFile 是会失败的。
    至于 NTFS 权限,设置一下 everyone 的删除权限为拒绝应该就可以。
        8
    cdwyd   193 天前 via Android
    弄个网页
        9
    mmdsun   193 天前
    @huiyifyj 不是吧。是移动的网络吗?
        10
    innoink   193 天前 via Android
    我记得我大一的时候做过文件系统过滤驱动,能过滤所有文件操作,不知道现在还行不行
        11
    mmdsun   193 天前
    @wevsty everyone 删除设置的拒绝还是不行。不知道是 bug 还是没有设置好
        12
    mmdsun   193 天前
    @webjin1 应该是的 ,百度 copy 的。我只记得是 chattr 打头了
        13
    wevsty   193 天前
    @mmdsun
    一般来说我会认为是你没有设置好。
        14
    geelaw   193 天前
    怎么会是 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 都不能被删除。
        15
    mmdsun   193 天前
    这样也不行,我就是右键文件 在属性-- 安全 里面改的 不知道还有没有别的方法 。

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

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

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

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

    另外:

    @ericls #17 没看懂。

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

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

    @crb912 #21 权限控制都是依赖操作系统完成的,自然你必须要设置恰当的权限才能完成。文件被进程占用而不能被删除也是操作系统完成的。“就可以被删除”显然是假设了管理员权限,但如果假设管理员权限,你就可以停止占用一个文件的进程,然后删除文件。(即使文件是被 Windows 核心进程占用,具有管理员权限也可以去调试这些进程,并完成相应的操作。)
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2925 人在线   最高记录 3821   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 23ms · UTC 04:48 · PVG 12:48 · LAX 20:48 · JFK 23:48
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1