くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Cygwin x Windowsでアクセス権限にはまる(chmod/setfacl/getfacl)

ファイルやディレクトリを作成・編集すると、権限が変わってしまう

いつの頃かから、Eclipseなどから作成したファイル/ディレクトリの権限が060になっていたり、
gitで操作したファイルの権限が変わってしまうなど、よくわからないことが起こっていた。。

数ファイルだけだったので、毎回chmodで対応していたが、.gitディレクトリ配下まで汚染され、
のっぴきならない感じになったので、真面目に対応してみたときの備忘録

ACLを無効にして/cygdriveをマウントするが、だめだった。。

デフォルトでは、WindowsACL(Access Control List)が有効になっているので、 Windowsのアクセス権限を踏まえた設定になっている。

ACLを無効にすると良いとあったので、/etc/fstabを編集して、試してみた。

- none /cygdrive cygdrive binary,posix=0,user 0 0
+ none /cygdrive cygdrive binary,posix=0,user,noacl 0 0

が、ACLを無効にするとchmodが使えなくなる。。ので、やりたいことと違った。。

ACLをgetfaclで確認して、setfaclで設定する

ACLが悪さをしている感じだったので、うまくいくファイル/フォルダの設定を確認してみた。

$ getfacl <dir_name>
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

$ getfacl <file_name>
user::rwx
group::r-x
group:Authenticated Users:rwx
group:SYSTEM:rwx
group:Administrators:rwx
group:Users:r-x
mask:rwx
other:r-x

うまくいかない方を見てみると、なんか設定されていない項目などがたくさん。。

$ getfacl <dir_name>
・・・
mask:---
other:---
・・・
default:mask:---
default:other:---
・・・

こいつが原因か。。。

うまくいく設定を取り込んでみるとうまくいった!!

$ getfacl <うまくいくDir> | setfacl -f - <うまくいかないDir>
$ getfacl <うまくいくFile> | setfacl -f - <うまくいかないFile>

いつのまに変更されてしまったのかは不明ですが、ACLの設定を見直すとうまくいくのか。。。

以上!!

参考にしたサイト様