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 appropriatesetfacl
for you, and warns if it fails. We use this at Branchable and it seems to work fine. --JoeyAwesome, 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