web-dev-qa-db-ja.com

MSYS2とCygwinのネットワーク共有でのファイルのアクセス許可/所有権?

MSYS2とCygwinの両方がインストールされたWindows10で作業しています。

ほとんどの場合、私はMSYS2(この場合はMINGW64シェル)を使用しており、通常、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
sdbbs

わかりました、このブログ投稿のおかげでこれを修正しました: https://salonen.wordpress.com/2011/04/22/fixing-file-permissions-on-network-shares-in-cygwin/

基本的に、Cygwinの私の/etc/fstabはこれだけでした:

# /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-これで、MSYS2と同様に、すべてのファイルがユーザー+グループuser Noneによって所有されているように見えます。ケース、そして彼らはうまく開きます。

私が見つけたCygwinのもう1つの便利なコマンド( 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
2
sdbbs