Dropboxでpermission denied

OSをアップグレードしたりバックアップから戻している間に、いつの間にかDropboxで一部フォルダがpermission deniedエラーで同期できなくなっていました。

ターミナルで該当ディレクトリを ls -la で見てみると、エラーを起こしているディレクトリは属性に + 記号が付いています。

drwxr-xr-x+  49 hoge  staff        1666  1  8 16:33 hoge

この意味は拡張属性が追加されていて、ls に -e を付けるとその詳細を見る事ができます。

drwxr-xr-x+  49 hoge  staff        1666  1  8 16:33 hoge
0: group:everyone deny delete
1: 822F7B13-0313-4051-B813-081D8976F450 allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity

これはACLというやつで、ファイルのアクセスを制御するセキュリティのための機能です。今は不要なので以下の方法で消します。

sudo chmod -R -N hoge

hoge の部分を適切なファイル名、ディレクトリ名に置き換えます。もう一度 ls -le でACLの状態を確認して、無くなっていれば成功です。この変更直後にDropboxの方で自動的に同期をしてくれました。

参考: