MSYS2 与 Cygwin 中网络共享的文件权限/所有权?

MSYS2 与 Cygwin 中网络共享的文件权限/所有权?

我在 Windows 10 上工作,安装了 MSYS2 和 Cygwin。

大多数情况下,我使用 MSYS2(或者在本例中是 MINGW64 shell),并且通常使用在 MINGW64 下运行的任何程序访问网络共享上的文件都不会遇到问题。

当我检查 MINGW64 的权限时,我得到例如:

user@PC MINGW64 //MYSERVER/myshare/test
$ ls -la
total 38M
drwxr-xr-x 1 user None    0 Dec  3 15:28 ./
drwxr-xr-x 1 user None    0 Nov 28 08:36 ../
-rw-r--r-- 1 user None 7.4M Dec  3 13:20 test_one.png
....

但是,如果我从 Cygwin shell 尝试执行相同操作,则会得到以下结果:

user@PC //MYSERVER/myshare/test
$ ls -la
total 38900
drwxrwx---+ 1 Unknown+User Unix_Group+65534       0 Dec  3 15:28 .
drwxrwx---+ 1 Unknown+User Unix_Group+65534       0 Nov 28 08:36 ..
-rwxrwx---+ 1 Unknown+User Unix_Group+65534 7666914 Dec  3 13:20 test_one.png
...

显然,Cygwin 并没有将user视为该文件的所有者,而是将其视为Unknown+User所有者。

相应地,如果我想以 的方式打开此文件,feh我会得到:

feh WARNING: test_one.png - No read access

我能否以某种方式设置 Cygwin,以便它看到与 MINGW64 看到的 Windows 网络共享上文件的相同所有权/权限?

答案1

好的,解决了这个问题,感谢这篇博文:https://salonen.wordpress.com/2011/04/22/fixing-file-permissions-on-network-shares-in-cygwin/

基本上,我/etc/fstab在 Cygwin 中就是这样的:

# /etc/fstab
#
#    This file is read once by the first process in a Cygwin process tree.
#    To pick up changes, restart all Cygwin processes.  For a description
#    see https://cygwin.com/cygwin-ug-net/using.html#mount-table

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

我只是,noacl在最后一行(也是唯一未注释的行)中添加了以下内容:

none /cygdrive cygdrive binary,posix=0,user,noacl 0 0

...然后关闭 Cygwin 终端,再次打开它cd-//MYSERVER/myshare/test现在,所有文件似乎都归用户+组所有user None,就像在 MSYS2 情况下一样,并且它们可以正常打开。

我在 Cygwin 中发现了另一个有用的命令(通过https://cygwin.cygwin.narkive.com/lZOZG8Ut/network-drive-file-permissions-permission-denied)是这个(这里检查目录//MYSERVER/myshare/test):

$ /usr/lib/csih/getVolInfo .
Device Type        : 7
Characteristics    : 10
Volume Name        : <myshare>
Serial Number      : 193090813
Max Filenamelength : 255
Filesystemname     : <NTFS>
Flags              : 5002f
  FILE_CASE_SENSITIVE_SEARCH  : TRUE
  FILE_CASE_PRESERVED_NAMES   : TRUE
  FILE_UNICODE_ON_DISK        : TRUE
  FILE_PERSISTENT_ACLS        : TRUE
  FILE_FILE_COMPRESSION       : FALSE
  FILE_VOLUME_QUOTAS          : TRUE
  FILE_SUPPORTS_SPARSE_FILES  : FALSE
  FILE_SUPPORTS_REPARSE_POINTS: FALSE
  FILE_SUPPORTS_REMOTE_STORAGE: FALSE
  FILE_VOLUME_IS_COMPRESSED   : FALSE
  FILE_SUPPORTS_OBJECT_IDS    : TRUE
  FILE_SUPPORTS_ENCRYPTION    : FALSE
  FILE_NAMED_STREAMS          : TRUE
  FILE_READ_ONLY_VOLUME       : FALSE
  FILE_SEQUENTIAL_WRITE_ONCE  : FALSE
  FILE_SUPPORTS_TRANSACTIONS  : FALSE

相关内容