After I e-mailed DA support with this question and they tried it, but it came back with an error message that it only works on Linux when they tried.How can I implement this on FreeBSD?
When will you have FreeBSD support?
The readme states: "mod_ruid2 runs only on linux because afaik only linux has implemented posix 1003.1e capabilities"
Posix 1003.1e is a withdrawn standard from 1997, which wanted to define the Posix API of access control lists. Many ?NIX-like OSes implemented ACLs using this abandoned standard as a basis. Linux, BSD, and Solaris, support POSIX.1e ACLs, based on this early POSIX draft. Many of them, for example AIX, FreeBSD, Mac OS X, beginning with version 10.4 ("Tiger"), and Solaris with ZFS filesystem, support NFSv4 ACLs, which extends Posix 1003.1e, and is part of the NFSv4 standard. If anything Linux lags in this area. There are two experimental implementations of NFSv4 ACLs for Linux: NFSv4 ACLs support for Ext3 filesystem and recent Richacls, which brings NFSv4 ACLs support for Ext4 filesystem. With NFSv4 you would have a real standard to work to, instead of an abandoned draft, and NFSv4 is where Linux is headed. Then, if there are problems, they are not your problem, it's them not adhering to the standard, which translates into a bug they need to fix.
For FreeBSD, Posix 1003.1e is documented in the man pages, FreeBSD Handbook posix1e(3), acl(3), and the various references to the SEE ALSO sections. So Posix 1003.1e DOES exist in FreeBSD and other ?NIX operating systems. While you may find slight differences from the Linux implementation, I assume, this is nothing that could not be ironed out with a 100 lines of glue code. In fact, you might want to change it to be compatible with NFSv4 ACLs, where the rest are and Linux is headed, and make the glue for where Linux currently is for backward compatibility.
I just posted a followup to my earlier message to the mod_ruid2 developers:I have not seen a response to my message to the ruid_mod2 developers.
It's odd there has been no action on this when the readme makes the false supposition: "mod_ruid2 runs only on linux because afaik only linux has implemented posix 1003.1e capabilities"
Solaris, AIX, FreeBSD, Mac OS X are more compliant with posix 1003 than Linux. Moreover, these other operating systems also support NFSv4, which extended posix 1003, thus posix 1003 has been withdrawn from being a standard. The driving force behind the ACLs has been Solaris. Linux has been dead last to keep up up in the NFS area. My concern is that the main problem with mod_ruid2 not working with operating systems other than Linux may be rooted in the false supposition that "only Linux has implemented posix 1003.1e capabilities".
Based on the previous incorrect comment in the readme about posix 1003.1e compliance being a Linux thing, I get the impression that the author doesn't have much expertise outside of the Linux area, but he seems open to suggestions that would make it portable if someone would work with him to do so. He very likely developed it for his own use, thus there is no strong motivation for him to make it portable without some help. The best solution would be to have this commonly desired functionality be part of the Apache core distribution.Updated the README https://github.com/mind04/mod-ruid2. We need Linux capabilities for mod_ruid2 http://linux.die.net/man/7/capabilities And those are not implemented in FreeBSD. Closed for now, but i'm happy to reopen the issue if there are new insights...
you have prefork mpm.
i'll try to compile apache again with mpm-prefork and see what happen..
EDIT:
it's working now.
so i was right, mod_ruid2 isn't compatible with multi-threaded mpms like event and worker.
What is "heavy load"? How many requests per second?