Cygwin 创建文件权限问题
在通过命令行,如:
mkdir test
创建一个目录或文件后,通过右键属性打开安全选项卡时,Windows 会提示test 上的权限顺序不正确
,而后可能会导致一些文件权限操作上的异常问题发生
原因
Cygwin 的主要目的是通过重新编译,将 POSIX 系统(例如 Linux、BSD,以及其他 Unix 系统)上的软件移植到 Windows 上。
所以 Cygwin 自带的对文件的创建命令同样也是通过移植 POSIX 的方式实现,这一点我们可以通过 cygwin 安装目录下的 /etc/fstab
文件内容得到验证
1 | This is default anyway: |
解决方案
默认情况下,Cygwin 使用文件系统的访问控制列表 (ACL) 来实现真正的 POSIX 权限。
某些 Windows 本地程序或进程可能会创建或修改 ACL,导致 Cygwin 将 POSIX 权限计算为 000。
所以需要将 /etc/fstab
改为如下内容:
1 | none /cygdrive cygdrive binary,noacl,posix=0,user 0 0 |
使用 noacl
挂载选项,Cygwin 会忽略文件系统 ACL,并且只会根据 DOS 只读属性伪造权限位的子集。
最后关闭所有 Cygwin 及相关进程(或者直接重启系统),打开一个新终端并再次对您的文件执行 ls -l
参考
- 标题: Cygwin 创建文件权限问题
- 作者: CListery
- 创建于 : 2023-02-15 16:38:17
- 更新于 : 2024-11-15 15:53:32
- 链接: http://clistery.github.io/2023/02/15/cygwin/fstab-error-cygwin/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论