======noaclを指定する(rsync, lftp)====== 参考サイト:\\  **[[https://www.glamenv-septzen.net/view/1106|技術/Windows/Cygwin/NTFSをnoaclでマウントする]]**\\  **[[http://kfujieda.hatenablog.com/entry/20110521/1305982895|Cygwinのいくらかましな使い方]]**\\ [[windows:rsync|rsync]] も [[windows:lftp|lftp]] も**cygwin**のDLLを使って実装されている。cygwinはファイルのパーミッション(アクセス権)をWindowsの**ACL**(アクセス制御リスト)を使って実装している。cygwinで作ったファイルのACLを見ようとセキュリティタブを開くと、このようなエラーが表示される。 {{ :windows:cygwin-acl-error.png?nolink |}} **・・・のアクセス許可の順序が正しくありません。これによりいくつかのエントリが無効になる可能性があります。** ACLにはNULL SIDから始まるエントリが並んでいる。 {{ :windows:cygwin-invalid-acl.png?nolink |}} 困るのは、Windowsの一部アプリからはcygwinの作ったファイルが読み取れない場合があることだ。\\ 例えば、rsyncやlftpで、稼働中のリモートサイトからDokuWikiをダウンロードして実行しようとすると、ファイルにアクセスできないというエラーを食らったりする。 これについては、/etc/fstab ファイルに none /cygdrive cygdrive binary,posix=0,user,noacl,notexec 0 0 という一行を設定すれば良い。**noacl** と **noexec** を指定することによって、/cygdrive 以下のファイルに対して、cygwinがWindowsのACLを参照・変更しなくなる。 C:\etc フォルダに fstab ファイルを作成して、上記の一行を書いておく。 既にcygwinをインストールする場合(例えばcygwinがC:\cygwin64にインストールされた場合)、cygwinの /etc/fstab を編集し、\\ ''mklink /j c:\etc c:\cygwin64\etc''\\ として、C:\etc から C:\cygwin64\etc にシンボリックリンクを貼っておくと良い。 このようにして、rsyncやlftp(や他のcygwin1.dllを使ったアプリ)がACLをイジらないように設定してから転送を行うと良い。\\ なお、noacl設定前にできてしまったファイルは、\\ ''icacls folder /reset /t'' というコマンドでACLをリセットする。