パーミッションとACL

Hamigaki.Filesystemをarchiveサンプルに組み込んでみました。
archive.cppの差分
これで一応、#if defined(BOOST_WINDOWS)がなくなりました。


file_statusも少し変更しました。
file_status.hppの差分
file_status.cppの差分

  • file_attributesにread_onlyを追加
  • for_system → system、for_archive → archive
  • Windows版のgroup/otherのパーミッションを0にした

パーミッションはWin32で普通に作成したファイルをCygwinで見るとそうなっていたので合わせました。
CygwinパーミッションACLで実現されていて、groupはプライマリグループ(ドメインに参加していない場合は「なし」)、otherはEveryoneに対応しているようです。
file_statusのパーミッションACLだけで汎用的に表現できないかと思って、ココココを見て考え中なのですが、どうにもNTのACLは複雑すぎで、これに合わせるのは厳しい感じです。
CygwinのようにACLからパーミッションを割り出すぐらいが妥当でしょうかね。