トラブルシューティング

トラブルシューティング

私のWindows 10ノートブックには、管理者アカウントAdmin、管理者以外のアカウント、およびUser.NameデフォルトのPublic アカウントがあります。

Adminまたは、User.Nameアカウントで~/ ツリーに生成されたファイルには読み取り/書き込み権限があります。ユーザーしかし、グループ。このコマンドはls -lグループをとしてマークしますNone。次の例では、コマンドはここに示されている順序とは異なる順序で実行されるため、タイムスタンプはそれほど有益ではありません。

~/tmpアカウントの例User.Name:

User.Name@Laptop-Hostname ~/tmp
$ echo "Hello" > Test.txt

User.Name@Laptop-Hostname ~/tmp
$ zip Test.zip Test.txt
  adding: Test.txt (stored 0%)

User.Name@Laptop-Hostname ~/tmp
$ ls -l Test.{txt,zip}
-rw------- 1 User.Name None   6 2023-08-11 00:42 Test.txt
-rw------- 1 User.Name None 172 2023-08-11 01:05 Test.zip

~/tmpアカウントの例Admin:

Admin@Laptop-Hostname ~/tmp
$ echo "Hello" > Test.txt

Admin@Laptop-Hostname ~/tmp
$ zip Test.zip Test.txt
  adding: Test.txt (stored 0%)

Admin@Laptop-Hostname ~/tmp
$ ls -l Test.{txt,zip}
-rw------- 1 Admin None   6 2023-08-11 00:44 Test.txt
-rw------- 1 Admin None 172 2023-08-11 01:02 Test.zip

ただし、アカウントUser.Nameまたはツリーにファイルを作成するAdminと、ユーザーは/c/Users/Public/そしてこのグループには読み取り/書き込み権限があります。

~/tmpアカウントの例User.Name:

User.Name@Laptop-Hostname ~/tmp
$echo "Hello" > /c/Users/Public/tmp/TestFromUser.Name.txt

User.Name@Laptop-Hostname ~/tmp
$zip /c/Users/Public/tmp/TestFromUser.Name.zip Test.txt
  adding: Test.txt (stored 0%)

User.Name@Laptop-Hostname ~/tmp
$ls -l /c/Users/Public/tmp/TestFromUser.Name.{txt,zip}
-rw-rw----+ 1 User.Name None   6 2023-08-11 00:52 /c/Users/Public/tmp/TestFromUser.Name.txt
-rw-rw----+ 1 User.Name None 172 2023-08-11 00:53 /c/Users/Public/tmp/TestFromUser.Name.zip

~/tmpアカウントの例Admin:

Admin@Laptop-Hostname ~/tmp
$ echo "Hello" > /c/Users/Public/tmp/TestFromAdmin.txt

Admin@Laptop-Hostname ~/tmp
$ zip /c/Users/Public/tmp/TestFromAdmin.zip Test.txt
  adding: Test.txt (stored 0%)

Admin@Laptop-Hostname ~/tmp
$ ls -l /c/Users/Public/tmp/TestFromAdmin.{txt,zip}
-rw-rw----+ 1 Admin None   6 2023-08-11 00:47 /c/Users/Public/tmp/TestFromAdmin.txt
-rw-rw----+ 1 Admin None 172 2023-08-11 00:47 /c/Users/Public/tmp/TestFromAdmin.zip

/c/Users/Public/tmp/Test.zipアカウントからzipファイルを作成して、より多くの公開権限を確認しました User.Name。その後、Cygwinのコマンドを使用してzipアカウントからファイルを追加できます。 Cygwinのコマンドを使用してアカウントからファイルを追加することもできます。/c/Users/Public/tmp/Test.zipAdminzip/c/Users/Public/tmp/Test.zipUser.Name

これが私が最も便利だと思う動作ですが、Windowsエクスプローラを使用していないので知りたいです。Cygwinは、/c/User/Publicファイルツリーのファイルをユーザーとグループが読み書きできるようにする方法を知っていますか? これを理解するには、文書のどの部分に集中する必要がありますか?

関連文書を探すPOSIX アカウント、権限、セキュリティしかし、率直に言って、その多くはあまりにも詳細に説明されているので、理解する根拠はありません。 「Cygwinは特定のレベルでWindowsと対話して、アカウント全体でファイルを作成および変更するためのセキュリティ動作を継承します」など、高レベルの動作についてより簡単な説明ができるかどうか疑問に思います。デザインの動作を簡潔に表現すると、ユーザーがさまざまなクロスアカウント操作で何を期待しているのかを理解するのに役立ちます。

トラブルシューティング

Publicトラブルシューティングを簡単に管理するために、自分のファイルスペースに書き込まれるファイルと自分のファイルスペースに書き込まれるファイルの間に違いがあることがわかりました。したがって、User.Name作成されたファイルスペースとUser.Name作成User.Nameされたファイルスペースを比較しますPublic。つまり、 との比較は省略しますAdmin

に基づいてG-マンス提案として、/homeファイルがルート化されたより大きなWindowsファイルツリーではなく、ルートのCygwinファイルツリーにファイルを作成し、他の権限が発生したかどうかをテストしました/c/Users。これは、異なる権限がツリーからツリーPublic に書き込まれるのではなく、アカウントに書き込まれたために発生することを確認することには関係ありません。/c/Users/home

User.Name@Laptop-Hostname ~/tmp
$ # Permissions of one's Cygwin home directory.
$ # Not sure how relevant this is.
$ ls -ld ~
drwxr-xr-x 1 User.Name None 0 Aug 12 13:13 /home/User.Name

User.Name@Laptop-Hostname ~/tmp
$ # Permissions of one's own current directory.
$ # Not sure how relevant this is.
$ ls -ld ~/tmp
drwx------ 1 User.Name None 0 Aug 12 02:20 /home/User.Name/tmp

User.Name@Laptop-Hostname ~/tmp
$ # Permissions of file created in one's own Windows file tree.
$ # Only "User" has read/write access.
$ ls > /c/Users/User.Name/Documents/List.txt
$ ls -l /c/Users/User.Name/Documents/List.txt
-rw-------+ 1 User.Name None 414 2023-08-12 13:19 /c/Users/User.Name/Documents/List.txt

User.Name@Laptop-Hostname ~/tmp
$ # Permissions of file created in Public's Windows file tree
$ # Both "User" and "Group" have read/write access.
$ ls > /c/Users/Public/Documents/List.txt
$ ls -l /c/Users/Public/Documents/List.txt
-rw-rw----+ 1 User.Name None 414 2023-08-12 13:20 /c/Users/Public/Documents/List.txt

getfacl比較中のファイルが含まれているフォルダに適用するよう提案されていました。以下は、getfaclユーザーのCygwin "tmp"フォルダー、ユーザーのWindowsの "Documents"フォルダー、およびユーザー Publicの "Documents"フォルダーの結果です。

User.Name@Laptop-Hostname ~/tmp
$ # FACL for user's Cygwin "tmp" folder
$ getfacl ~/tmp
# file: /home/User.Name/tmp
# owner: User.Name
# group: None
user::rwx
group::---
other::---
default:user::rwx
default:group::r-x
default:other::r-x

User.Name@Laptop-Hostname ~/tmp
$ # FACL for user's Windows "Documents" folder
$ getfacl /c/Users/User.Name/Documents/
# file: /c/Users/User.Name/Documents/
# owner: User.Name
# group: None
user::rwx
group::---
group:SYSTEM:rwx        #effective:---
group:Administrators:rwx        #effective:---
mask::---
other::---
default:user::rwx
default:group::---
default:group:SYSTEM:rwx        #effective:---
default:group:Administrators:rwx        #effective:---
default:mask::---
default:other::---

User.Name@Laptop-Hostname ~/tmp
$ # FACL for Public's Windows "Documents" folder
$ getfacl /c/Users/Public/Documents/
# file: /c/Users/Public/Documents/
# owner: SYSTEM
# group: SYSTEM
user::rwx
group::---
group:BATCH:rwx
group:INTERACTIVE:rwx
group:SERVICE:rwx
group:Administrators:rwx
mask::rwx
other::---
default:user::rwx
default:user:SYSTEM:rwx
default:group::---
default:group:BATCH:rwx
default:group:INTERACTIVE:rwx
default:group:SERVICE:rwx
default:group:Administrators:rwx
default:mask::rwx
default:other::---

FACLについて読んだ。 ここ。 「名前付きユーザー」と「名前付きグループ」があることがわかりました。両方「グループクラス」に属します。これ効果的な権限は、3ビットの「マスク」を使用する特定のユーザー/グループの権限ビットの最小値(ビットAND操作)です。これにより上記の存在が確認されました#effective:---。本文によると、グループ権限はls -l次のとおりです。マスク、これは特定の名前付きユーザー/グループよりも緩いか緩むことができます。

反直感的に、持つグループ権限は次のとおりです。いいえマスクとANDで連結されます(テキストを正しく理解した場合)。

私はテキストを解釈するときに2つの仮定をしました。 (1)「所有」グループは所有者ユーザーが属するグループであり、(2)そのグループ Nonegroup::

上記の最初のトピックでは、getfacl新しく作成されたファイルにユーザーの読み取り/書き込み権限がある理由について説明します/home/User.Name/tmpdefaultいいえ新しいファイルに実行権限がない理由(x)また、これらのdefaultエントリは、新しいファイルにグループ/その他の読み取りおよび実行権限がないという事実と一致しません。

以下は.defaultエントリgetfaclです。/c/Users/User.Name/Documents/---するグループ/その他に新しく作成されたファイルに対する権限がない理由を説明します。

3番目で最後のものgetfaclです/c/Users/Public/Documents/。このdefault:user::rwxトピックでは、このようなユーザーが次のように生成されたファイルへ User.Nameの読み取り/書き込みアクセス権を持っている理由について説明します。User.Nameuserディレクトリではなくファイルの所有者/作成者を参照しているとします。 このdefault:group:Administrators:rwxトピックでは、このアカウントが提供されたAdmin回答に追加できる理由も説明しますUser.Name。この推論が正しいことを確認していただければ幸いです(誰かが答えとして投稿したい場合は答えになります)。

関連情報