ikiwiki hosting internals/ bugs/ anonymous pushes may make source.git repo unwritable

I am not sure the circumstances which allowed this to happen

    r-wiki@marcos:~/source.git$ ls -al objects/
    total 48
    drwxrwxr-x 12 r-wiki       r-wiki       4096 avr 12 10:21 .
    drwxrwsr-x  7 r-wiki       r-wiki       4096 avr 13 07:57 ..
    drwxrwsr-x  2 ikiwiki-anon ikiwiki-anon 4096 avr  8 08:41 09
    drwxrwsr-x  2 r-wiki       r-wiki       4096 avr 12 10:21 41
    drwxrwsr-x  2 r-wiki       r-wiki       4096 avr 12 10:21 56
    drwxrwsr-x  2 r-wiki       r-wiki       4096 avr 12 10:21 5d
    drwxrwsr-x  2 r-wiki       r-wiki       4096 avr 12 10:21 6b
    drwxrwsr-x  2 r-wiki       r-wiki       4096 avr 12 10:21 8b
    drwxrwsr-x  2 r-wiki       r-wiki       4096 avr 12 10:21 9e
    drwxrwsr-x  2 r-wiki       r-wiki       4096 avr 12 10:21 f3
    drwxrwxr-x  2 r-wiki       r-wiki       4096 avr 13 07:57 info
    drwxrwxr-x  2 r-wiki       r-wiki       4096 avr 13 07:57 pack

But it broke editing the wiki from the web, in the sense that the history didn't get push to the `source.git` directory, which in turns means that synchronised wikis are not updated and other hooks not ran:

    r-wiki@marcos:~/source$ git push
    Counting objects: 11, done.
    Delta compression using up to 2 threads.
    Compressing objects: 100% (6/6), done.
    Writing objects: 100% (8/8), 1.98 KiB, done.
    Total 8 (delta 5), reused 5 (delta 2)
    error: insufficient permission for adding an object to repository database ./objects

    fatal: failed to write object
    error: unpack failed: unpack-objects abnormal exit
    To /home/r-wiki/source.git
     ! [remote rejected] master -> master (n/a (unpacker error))
    error: failed to push some refs to '/home/r-wiki/source.git'

I think the problem is someone pushed a blob that had the first `09` hash prefix through the git daemon, while all the other hash prefix directories have been created by the web interface. The workaround I found is:

    chmod g+s objects
    chown :r-wiki 09 09/*

... but that's hardly convenient. :) -- anarcat

> `ikiwiki-anon` is the user used for anonymous git push. See "permissions mess" in anonymous git push for a discussion of this problem, and its solution, which is to use a filesystem supporting ACLs. `ikisite enable` runs an appropriate `setfacl` for you, and warns if it fails. We use this at Branchable and it seems to work fine. --Joey

> > Awesome, so just adding acl to the mount point (add installing the acl package, but I already had that :) fixes the problem, after running `ikisite enable` again on the site, thanks and done! --anarcat