V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liyafe1997
V2EX  ›  Windows

关于 NTFS 一个奇怪的特性(给文件夹设置图标会加上只读属性)

  •  
  •   liyafe1997 · 2021-09-27 06:05:44 +08:00 · 742 次点击
    这是一个创建于 932 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我习惯给分区根目录上的几个文件夹设置自定义图标(右键-属性-自定义-更改图标),这样比较好认。
    然后奇怪的事情发生了:
    在 macOS 上用 Tuexra NTFS for mac (其实就是 ntfs-3g 的商业版),所有设置了图标的文件夹都会显示一把锁,只有按 Command+i,然后把只读去掉以后才能写入。这么做以后回到 Windows 上发现自定义图标不显示了,显示回黄黄的文件夹 Logo 。

    后来因为 Tuxera 的 NTFS 驱动性能太差,换 Paragon NTFS 了。(在这给各位 macOS 用户提个醒,Tuxera 就是个 FUFE,在某些极端情况下性能极差,而 Paragon 是内核驱动,追求性能的没必要贪便宜买 Tuxera )

    而 Paragon NTFS 没这个问题,Windows 上设置图标以后,在 macOS 下一样是可以读写的。

    然后我这台机上还有个 Ubuntu 。
    众所周知 Ubuntu 自带的 NTFS 驱动是 ntfs-3g (就是 Tuxera 家的开源版本),一直用起来都没问题,上面说的设置图标后也没问题,都能读写。

    同样,也是因为 ntfs-3g 性能问题,换了 Paragon 的 NTFS for Linux (也叫 ufsd ),这个对个人用户是免费的但不开源。

    然后用 ufsd 挂载我的 NTFS 分区以后,发现跟之前在 macOS 下 Tuxera 一样,所有设置了图标的文件夹都默认不给 write 权限。如果我用 chmod +w 之后,回到 Windows 下,自定义图标就没了。

    然后我在 Windows 下用 attrib 看( Powershell 用 ls 也能看出),所有设了自定义图标都上的 R 也就是只读属性。但是实际在 Windows 下并不会变成只读,权限不受影响。如果用 attrib -R,自定义图标也会没有。

    所以这个自定义图标为什么能和只读属性关联起来?有哪位同学研究过到底是什么机制吗?
    而且神奇的是,macOS 下 Tuxera(ntfs3g)会识别这个属性,Paragon 会忽略这个属性。Linux 下,ntfs3g 会忽略这个属性,Paragon 会识别这个属性。
    liyafe1997
        1
    liyafe1997  
    OP
       2021-09-28 02:51:54 +08:00
    找到官方解释了:
    https://support.microsoft.com/en-us/topic/you-cannot-view-or-change-the-read-only-or-the-system-attributes-of-folders-in-windows-server-2003-in-windows-xp-in-windows-vista-or-in-windows-7-55bd5ec5-d19e-6173-0df1-8f5b49247165

    看来这个文件夹的 Readonly 还真是一个 flag,有它就去读 desktop.ini
    看来所有第三方的实现如果真把这个作为只读处理(比如不给写权限)都算是 bug
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5518 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:38 · PVG 16:38 · LAX 01:38 · JFK 04:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.