首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cygwin将文件权限设置为000

cygwin将文件权限设置为000
EN

Stack Overflow用户
提问于 2011-04-29 12:50:47
回答 4查看 26.4K关注 0票数 61

我有一个文件夹/ cygwin /d/myfolder/,每次我在那里保存文件,从cygwin,如果我执行ls -la,我会看到这些文件被授予了权限。这实际上给我带来了相当多的问题,因为我将这个文件夹同步到我的服务器上,并且没有一个文件是可以访问的。如何让文件自动获得合理的权限?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-17 01:43:59

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

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

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

代码语言:javascript
复制
none /cygdrive cygdrive binary,noacl,posix=0,user 0 0

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

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

票数 127
EN

Stack Overflow用户

发布于 2011-08-10 13:27:54

检查以确保使用umask命令正确设置了umask。如果umask是0777,那么就会从新文件权限中减去,最终得到000个权限。除了这一点,可能还有其他几种可能性需要考虑。

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

票数 6
EN

Stack Overflow用户

发布于 2018-01-24 03:46:18

在上面的回答中,提出了解决方案:

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

none /cygdrive cygdrive二进制文件,noacl,posix=0,用户0 0

在那个答案里有这样的评论:

当我尝试这样做时,我所有的文件都是-rw-r--r--不管我做什么chmod()。我不能将文件标记为可执行文件;它只能恢复为0644。(umask==0022)

我也遇到过同样的问题,但它表现为在运行Cygwin ksh或mksh时无法执行DOS批处理文件(*.bat)。我偶然发现了这个网站:http://pipeline.lbl.gov/code/3rd_party/licenses.win/cygwin-doc-1.4/html/faq/,其中包含以下有用的建议:

注意,您可以使用mount -x强制Cygwin将挂载点下的所有文件视为可执行文件。这可以用于单独的文件和目录。然后Cygwin将不会费心读取文件来确定它们是否是可执行的。

然后交叉引用这个页面-- https://cygwin.com/cygwin-ug-net/using.html#mount-table --以及它的建议:

cygexec -将挂载点以下的所有文件视为cygwin可执行文件。

我将cygexec添加到我的fstab的第四个字段。这就是它。我的.bat现在可以在ksh/mksh中执行,这是必要的,因为我正在运行一个Jenkins作业,该作业调用Korn shell stack 3深度文件,我无法对其进行可修改的控制。我只是需要.bat来运行!

更新:在进一步的测试中,上面的解决方案并不完全符合我的需求。这导致了一些可执行文件,如javac和cl的行为异常(实用程序将打印它们的用法和退出)。我想我需要的不是'cygexec‘,而是'exec’。如同一页所述:

exec -将挂载点以下的所有文件视为可执行文件。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5828037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档