私の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.zip
Admin
zip
/c/Users/Public/tmp/Test.zip
User.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)そのグループ
None
はgroup::
。
上記の最初のトピックでは、getfacl
新しく作成されたファイルにユーザーの読み取り/書き込み権限がある理由について説明します/home/User.Name/tmp
。default
いいえ新しいファイルに実行権限がない理由(x
)また、これらのdefault
エントリは、新しいファイルにグループ/その他の読み取りおよび実行権限がないという事実と一致しません。
以下は.defaultエントリgetfacl
です。/c/Users/User.Name/Documents/
---
するグループ/その他に新しく作成されたファイルに対する権限がない理由を説明します。
3番目で最後のものgetfacl
です/c/Users/Public/Documents/
。このdefault:user::rwx
トピックでは、このようなユーザーが次のように生成されたファイルへ
User.Name
の読み取り/書き込みアクセス権を持っている理由について説明します。User.Name
user
ディレクトリではなくファイルの所有者/作成者を参照しているとします。 このdefault:group:Administrators:rwx
トピックでは、このアカウントが提供されたAdmin
回答に追加できる理由も説明しますUser.Name
。この推論が正しいことを確認していただければ幸いです(誰かが答えとして投稿したい場合は答えになります)。