Permissions 如何从Cygwin中使用cp.exe并保留权限

Permissions 如何从Cygwin中使用cp.exe并保留权限,permissions,cygwin,acl,cp,Permissions,Cygwin,Acl,Cp,我正在使用Cygwin中的cp.exe复制Windows 7中的文件。不幸的是,当我做文件的权限更改 我试过使用: cp --preserve=all 但这也不起作用,当我检查原始文件与副本的安全性时,副本具有不同的权限 显然,在使用Cygwin进行复制时,必须有一种保留权限的方法,但我找不到它。在问了上述问题后,我对此做了更多的调查 据Cygwin的一位开发人员透露,Cygwin似乎并不关心Windows权限,只是坚持使用POSIX权限 据我所知,POSIX权限与Windows权限完全不同,

我正在使用Cygwin中的cp.exe复制Windows 7中的文件。不幸的是,当我做文件的权限更改

我试过使用:

cp --preserve=all
但这也不起作用,当我检查原始文件与副本的安全性时,副本具有不同的权限


显然,在使用Cygwin进行复制时,必须有一种保留权限的方法,但我找不到它。

在问了上述问题后,我对此做了更多的调查

据Cygwin的一位开发人员透露,Cygwin似乎并不关心Windows权限,只是坚持使用POSIX权限

据我所知,POSIX权限与Windows权限完全不同,因此支持POSIX权限是很好的,但最终Cygwin无法复制文件并维护正常的Windows权限。让它对我没用。最好使用Python或Ruby


不过,我希望被证明是错误的。

我相信在/etc/fstab中向/cygdrive挂载点添加noacl选项将满足您的需要

$ cat fstab
# For a description of the file format, see the Users Guide   
# http://cygwin.com/cygwin-ug-net/using.html#mount-table

# This is default anyway:
# none /cygdrive cygdrive binary,posix=0,user 0 0
none /cygdrive cygdrive binary,posix=0,user,noacl 0 0

请参阅cygwin邮件列表中的和。

cp--preserver=all
可能是使用
cp
命令所能做的最好的方法。到底什么权限是不同的?您正在复制到FAT32文件系统吗?如果是这样,它可能不支持您想要的权限。看起来原始权限几乎被忽略了。这是NTFS-Win7。@KeithThompson
cp--preserve=all
至少在Win7上不起作用。cygwin cp权限仍然不正常!这让我今天非常失望。修正了:
getfacl src-file.txt | setfacl-f-dest file.txt
为什么Cygwin的
cp
不能为我这么做?!另一个选项可能是将
cp
别名为等效的
rsync
命令,类似于。在目标文件上设置了
Total Control
权限后,我可以使用
cp
复制文件。如果不起作用,一个简单的
mkdir
会破坏NTFS ACL继承并创建一组新权限,这有时也会使最初创建目录的用户无法保护目录(通常发生在rsync操作期间)。因此,使用noacl安装只是部分解决方案,但这并不能使cygwin按照我预期的方式运行。关于这个话题有很多讨论,对我来说这是cygwin的一个明显缺陷。@jdehaan我用最新的cygwin和CMD.exe
mkdir
设置与cygwin相同的权限,路径在
noacl
效果下。检查您的
/etc/fstab