(Please CC me on replies, I'm not subscribed to the list.)
My basic problem is: I want to restrict access (read and/or write) to paths
that contain spaces, square brackets and '#'s.
The details: I have an application that uses an SVN repo to store file
attachments. The paths to these attachments are also recorded in a MySQL
database — the path and revision information are used by the app. In order
to maintain uniqueness of paths, and to allow people to identify files in
the repository when working outside the app, all files are prefixed with an
ID, so the filenames have the form:
[12345] some file name.ext
Recently the requirement was added to impose SVN-level access control, so
after looking at the options I went with VisualSVN Server 2.5.5, which is
built on Apache Subversion 1.7.5. It gives me (and more importantly, my
manager) a GUI to manage access control. Under the hood, however, VisualSVN
seems to use an "authz-windows" file identical in format to the typical
"authz" file to maintain access control information.
The problem is this: it doesn't seem to work on files with the '[' or ']'
characters in their name. Ignoring VisualSVN's GUI for now, I've tried
going one step further and editing the "authz-windows" file by hand and I
just can't seem to get it to work. I've tried variations like:
[repo:/path/to/[12345] file.ext]
[repo:/path/to/%5B12345%5D%20file.ext]
[repo:"/path/to/[12345] file.ext"]
[repo:/path/to/\[12345\] file.ext]
...but none of them actually restrict access to the file in question. I can
restrict access to other files or paths in the same repository with the
same file, so I know that ACL works to some extent. I just can't find any
documentation that says that '[' or ']' are illegal in SVN, or that "authz"
style access control adds restrictions to characters. Also,
"svnauthz-validate" returns 0 for all of the above forms.
It's also worth pointing out that some paths have the "#" character in
them. What do I do when I get to those?
— Jason
Received on 2012-07-11 07:13:48 CEST