使用pmount挂载NTFS格式U盘后无法运行Shell脚本且无法修改权限的原因咨询
使用pmount挂载NTFS格式U盘后无法运行Shell脚本且无法修改权限的原因咨询
嘿,我来给你拆解下这个问题哈~
首先说为啥pmount挂载后没法运行shell脚本:这和NTFS文件系统的特性以及pmount的默认挂载参数有关。NTFS本身是Windows生态的文件系统,它并不支持Linux的权限模型(比如咱们常用的rwx权限位、chmod命令这些),Linux挂载NTFS分区时,其实是靠ntfs-3g(或者fuse-ntfs-3g)这类工具做兼容层,这时候你看到的文件权限都是挂载时统一指定的模拟权限,并不是真的存储在NTFS分区里的。
pmount默认挂载NTFS时,给文件设置的模拟权限比较严格,也就是你看到的600——这个权限意味着只有文件所有者能读、写,但没有执行权限,shell脚本没有执行权限自然就跑不起来。而Thunar、disks这类图形化工具挂载时,会自动添加更宽松的挂载参数,把默认权限设为777,所有用户都有读、写、执行权限,脚本自然就能正常运行了。
再说说为啥不管哪种挂载方式都没法修改权限:还是因为NTFS不支持Linux的权限机制,你在Linux里看到的权限只是兼容层模拟出来的表象,根本没法把权限修改真正写入到NTFS分区的元数据里。所以不管用pmount还是图形化工具挂载,chmod命令都起不了作用——图形化挂载时你不需要改权限是因为它默认给的777刚好满足运行需求而已。
那个社区老用户提到的类似问题,核心也是NTFS不支持Linux权限这一点,但针对你遇到的两种挂载方式的差异,本质就是挂载时指定的默认权限参数不同导致的哦。
备注:内容来源于stack exchange,提问作者quill
相关产品推荐
相关产品推荐

