mod_privsep
Privilege Separation for Apache httpd

Differences between revisions 1 and 2

Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:
   * Work is underway to make mod_privsep privilege separate extended attributes which will make properties work correctly.

mod_privsep to do list

  • Scalability / Parallelism
    • Use a pool of privileged processes instead of a single privileged process (although at present only open/stat is done in the privileged process and read/write is performed in the workers as usual so this does not have too much of impact on performance unless something like NFS is being used)
  • Overhead of PAM authentication for each request
    • Implement some form of authentication caching
  • Overhead of setgroups in each privileged operation
    • The code currently doesn't setup all of the supplemental groups due to the overhead of setgroups. One solution would be to route requests to a pooled process that is already switched to to the required user (would require privileged process pooling infrastructure)
  • Support properties properly
    • Properties support in the current patches are not fully supported as the property dbm calls are not privilege separated and thus get Permission Denied.
    • One possibility for easily supporting privilege separated properties is to implement Extended Attribute support (xattrs) in APR and then make a mod_dav_fs_props_xattr module that uses the xattr API instead of dbm files. A patch for APR xattrs is here: http://issues.apache.org/bugzilla/show_bug.cgi?id=44127

      • Work is underway to make mod_privsep privilege separate extended attributes which will make properties work correctly.
  • Better support for quotas
    • Some code paths in mod_dav need to be changed to expect EDQUOT instead of ENOSPC so that correct error reporting for disk full conditions is done
    • Implement diskfree using quotactl similarly to this patch that adds disk free properties (support by Mac OS X WebDAV client) http://www.carrel.org/files/dav-diskfree.patch