cygwin将文件权限设置为000

use*_*986 56 cygwin

我有一个文件夹/ cygwin/d/myfolder /并且每次我保存文件,从cygwin如果我做ls -la我看到文件被授予000.这实际上导致我相当多的问题,因为我rsync这文件夹到我的服务器,没有任何文件可访问.如何让文件自动获得合理的许可?

Ed *_*all 116

通过以下链接阅读答案:http: //cygwin.1069669.n5.nabble.com/vim-and-file-permissions-on-Windows-7-td61390.html

那里的解决方案也适用于我:

编辑/ etc/fstab并在文件末尾添加以下行:

none /cygdrive cygdrive binary,noacl,posix=0,user 0 0
Run Code Online (Sandbox Code Playgroud)

然后关闭所有Cygwin进程,打开一个新终端并再次对你的文件进行ls -l.

说明: 默认情况下,Cygwin使用文件系统的访问控制列表(ACL)来实现真正的POSIX权限.某些Windows本机程序或进程可能会创建或修改ACL,以便Cygwin将POSIX权限计算为000.使用noacl挂载选项,Cygwin将忽略文件系统ACL,并且仅根据DOS readonly属性伪造权限位的子集.

  • 我想+10这个.多年来我一直在解决这个问题.谢谢! (11认同)
  • 当我尝试这个时,我的所有文件都是`-rw-r - r - `无论`chmod()`我做什么.我无法将文件标记为可执行文件; 它只是恢复到0644.(umask == 0022) (4认同)
  • 这奏效了。我尝试过的另一件事也奏效,是放宽 Windows (7) 中的权限。我基本上从 Windows 资源管理器中制作了所有 `chmod u+rw .` 和 `chown -r me .`(在 Unix 术语中)。我不推荐我的解决方案,因为它是一个安全灾难。我做这个笔记只是为了提供更多的数据。 (3认同)
  • 我现在正在删除我 2 年前为解决此问题而编写的脚本。希望那时我能找到这个。:) (2认同)

joe*_*ney 6

检查以确保使用umask命令正确设置了umask.如果您的umask是0777,它会从新文件的权限中减去并最终获得000权限.除此之外,还有其他几种可能性需要考虑.

如果在/ etc/passwd和/ etc/group中未正确设置id,则也会导致ls显示意外结果.检查文件夹的权限.还可以使用getfacl命令检查Windows权限.也许还要检查mount命令.

  • `getfacl .`正是我想要的. (4认同)