#navi_header|技術| CygwinはNTFSのACLをPOSIXで扱えるように色々とマッピングをいじったりしています。 その影響か、Windowsプログラムで普通に作成したディレクトリやファイルをCygwin上で見てみると、パーミッションが"000"になっていてあたかも所有者含めて一切の権限がロストしているかのように見える時があります。 個人で、しかも開発用のマシンで管理者としてログインして操作可能な状態であれば、Cygwin上でNTFSとPOSIXのACLマッピングを無効化したほうがスッキリします。 ・・・というか、デーモンやらサービスやらをあれこれ起動したりいじる環境で、Cygwinのマッピングを「正しく」維持しても、発生しうるトラブルに対するメリットが少ないというか・・・。 環境: Win7SP1日本語版 $ cygcheck -c cygwin Cygwin Package Information Package Version Status cygwin 1.7.16-1 OK ※本記事はCygwin 1.7以降を元にしています。"noacl"って1.7以降のオプションで、"/etc/fstab"への記述でOKなのも1.7以降から、らしいです。1.7より前は、"ntsec"とか"nontsec"とかいじる必要があったっぽいです。 noaclの設定例 - "/etc/fstab" : ... C:/Users /home ntfs override,noacl,binary,auto 0 0 C:/Users/Foo /home/Foo ntfs override,noacl,binary,auto 0 0 none /cygdrive cygdrive binary,noacl,posix=0,user 0 0 詳しくは"man mount"でマウントオプションを確認してください。 ''もしnoaclなしのデフォルト状態でファイルとかディレクトリを作ってしまったら?'' →icaclsコマンドを使います。"/reset"オプションでACLをリセットして親ディレクトリから継承させ直すことができます。 例:時既に遅く、C:\work\cygtest\hello.txtを作ってしまっていた・・・。ただし、Cygwinで作ったのは"cygtest\hello.txt"までで、"C:\work"まではWindowsのエクスプローラで作った。 →コマンドプロンプトを立ち上げ、 > cd c:\work > icacls cygtest /reset /t でC:\workからACLを継承させ直すことができます。 参考: - Cygwin 1.7 で作成したファイルにWindowsの共有属性が付かないようにする - なんとなく目記 -- http://d.hatena.ne.jp/gifnksm/20100119/1263922009 - Cygwin 1.7でNTFS ACLをやめる - ぱせらんメモ -- http://d.hatena.ne.jp/pasela/20100324/noacl - ファイルやフォルダのアクセス権をリセットして親フォルダから継承させる - @IT -- http://www.atmarkit.co.jp/fwin2k/win2ktips/1325aclreset/aclreset.html - icaclsコマンドでアクセス制御リスト中のメンバーを検索する - @IT -- http://www.atmarkit.co.jp/fwin2k/win2ktips/1322ifindsid/ifindsid.html - icaclsコマンドでファイルのアクセス制御リストACLを保存/復元する - @IT -- http://www.atmarkit.co.jp/fwin2k/win2ktips/1316icacls/icacls.html Win2kとか古いCygwin時代に、NTFSのACLをCygwinのPOSIXマッピングを細かく調整するための資料: - Cygwin for Professionals -- http://www.sixnine.net/cygwin/cygwin-doc/professional.html - 2.3. NT セキュリティと ntsec の使用方法 -- 2.3. NT セキュリティと ntsec の使用方法 #navi_footer|技術|