$ uname -a CYGWIN_NT-6.1 %USERDOMAIN% 2.4.1(0.293/5/3) 2016-01-24 11:26 x86_64 Cygwin
C:\>mkdir z
C:\>icacls z z BUILTIN\Administrators:(I)(F) BUILTIN\Administrators:(I)(OI)(CI)(IO)(F) NT AUTHORITY\SYSTEM:(I)(F) NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F) BUILTIN\Users:(I)(OI)(CI)(RX) NT AUTHORITY\Authenticated Users:(I)(M) NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(M) 1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした
$ getfacl z # file: z # owner: %USERNAME% # group: None user::rwx group::--- group:Authenticated Users:rwx group:SYSTEM:rwx group:Administrators:rwx group:Users:r-x mask:rwx other:--- default:user::--- default:group::--- default:group:Authenticated Users:rwx default:group:SYSTEM:rwx default:group:Administrators:rwx default:group:Users:r-x default:mask:rwx default:other:---
$ mkdir z
C:\>icacls z z NULL SID:(DENY)(Rc,S,REA,WEA,X,DC) %USERDOMAIN%\%USERNAME%:(F) %USERDOMAIN%\None:(RX) NT AUTHORITY\Authenticated Users:(RX,W,DC) NT AUTHORITY\SYSTEM:(RX,W,DC) BUILTIN\Administrators:(RX,W,DC) BUILTIN\Users:(RX) Everyone:(RX) NULL SID:(OI)(CI)(IO)(DENY)(Rc,S,REA,WEA,X,DC) CREATOR OWNER:(OI)(CI)(IO)(F) CREATOR GROUP:(OI)(CI)(IO)(RX) NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(RX,W,DC) NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(RX,W,DC) BUILTIN\Administrators:(OI)(CI)(IO)(RX,W,DC) BUILTIN\Users:(OI)(CI)(IO)(RX) Everyone:(OI)(CI)(IO)(RX) 1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした
$ getfacl z # file: z # owner: %USERNAME% # group: None user::rwx group::r-x group:Authenticated Users:rwx group:SYSTEM:rwx group:Administrators:rwx group:Users:r-x mask:rwx other:r-x default:user::rwx default:group::r-x default:group:Authenticated Users:rwx default:group:SYSTEM:rwx default:group:Administrators:rwx default:group:Users:r-x default:mask:rwx default:other:r-x
icacls | getfacl |
---|---|
%USERDOMAIN%\%USERNAME%:(F) | user::rwx |
%USERDOMAIN%\None:(RX) | group::r-x |
Everyone:(RX) | other:r-x |
CREATOR OWNER:(OI)(CI)(IO)(F) | default:user::rwx |
CREATOR GROUP:(OI)(CI)(IO)(RX) | default:group::r-x |
Everyone:(OI)(CI)(IO)(RX) | default:other:r-x |
なお Windows 10 Pro 64 bit 日本語版では以下のような対応になっていた。
%USERDOMAIN%\なし:(RX) | group::r-x |
言語使用の違いでデフォルトのグループ名変えるとかセンスが悪過ぎる。
これ、どうやって調べたら良いんだ?
Cygwin において重要な ALC は上記の 8 つのうち 6 つのみなので、他は削っても問題ない。
逆にこの 8 つのうちの 6 つがないと permission に不具合が生じる可能性がある。
従って不適切な ACL を持つ Cygwin の / を適切な ACL に変更するための処理は以下のようになる。
逆にこの 8 つのうちの 6 つがないと permission に不具合が生じる可能性がある。
従って不適切な ACL を持つ Cygwin の / を適切な ACL に変更するための処理は以下のようになる。
cp="$(cmd.exe /c chcp | awk '{printf $NF;}' | sed -re 's/^[^0-9]*([0-9]+).*$/CP\1/g')" cmd /c icacls "$(cygpath -w /)" \ /grant \ "%USERDOMAIN%\\%USERNAME%:F" \ "*S-1-3-1:RX" \ "Everyone:RX" \ "CREATOR OWNER:(OI)(CI)(IO)F" \ "CREATOR GROUP:(OI)(CI)(IO)RX" \ "Everyone:(OI)(CI)(IO)RX" \ /remove \ "NT AUTHORITY\\Authenticated Users" \ "NT AUTHORITY\\SYSTEM" \ "BUILTIN\\Administrators" \ "BUILTIN\\Users" \ "NULL SID" \ /inheritance:r \ | iconv -f "$cp" -t UTF-8
タグ
コメントをかく