home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

技術/Windows/Cygwin/NTFSをnoaclでマウントする

技術/Windows/Cygwin/NTFSをnoaclでマウントする

技術 / Windows / Cygwin / NTFSをnoaclでマウントする
id: 1106 所有者: msakamoto-sf    作成日: 2012-10-08 13:49:35
カテゴリ: Cygwin 

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を継承させ直すことができます。

参考:

Win2kとか古いCygwin時代に、NTFSのACLをCygwinのPOSIXマッピングを細かく調整するための資料:



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2012-10-08 14:19:46
md5:9b28babd43a201e49179579912637b0e
sha1:55b4bfbd06afbef45c012b105c07e9360a76be9d
コメント
コメントを投稿するにはログインして下さい。