Skip to content

FranklinChen/httpd-protection-generator

Repository files navigation

Generate Apache 2 httpd protection directives

Build Status

This is used for the TalkBank project.

Building

$ stack install

The resulting executable will be at ~/.local/bin/generate-httpd-protections and will automatically be in your path as generate-httpd-protections if your PATH is already set correctly to include ~/.local/bin.

Usage

Run on a YAML file to get an Apache 2 config file.

$ generate-httpd-protections configFile.yaml output.conf

Details

Edit a YAML file describing what is to be protected. An example is provided here:

---
dirPrefix: "/theRoot"
passwordDirPrefix: "/private/etc/apache2"
dirs:
  -
    dir: "junk/all"
    users:
      - "junk1"
      - "junk2"
      - "junk3"
    passwordsFile: "file1"
    scope:
      - "all"
  -
    dir: "verbatim/deal"
    users:
      - "2"
    passwordsFile: "file2"
    scope:
      - "verbatim"
  -
    dir: "only/media"
    users:
      - "3"
    passwordsFile: "file3"
    scope:
      - "media"
  -
    dir: "some/selected"
    users:
      - "4"
    passwordsFile: "file4"
    scope:
      - "data-orig"
      - "data"

Sample output is here.

Run

$ generate-httpd-protections protection.yaml httpd-protections.conf

You may need to use sudo if generating into /etc/apache2/other/, e.g.,

$ sudo generate-httpd-protections protection.yaml httpd-protections.conf

This program only sets up the Apache 2 configuration. To create or modify a password file, use htpasswd, e.g., to add a new user, e.g.:

$ sudo htpasswd my-passwords-file my-new-user

(enter in sudo password, then the new Apache user's password)

show-httpd-protections

There is also a program show-httpd-protections that just shows the actual paths being protected:

$ show-httpd-protections sample.yaml sample.txt

Example output:

/theRoot/data-orig/junk/all
/theRoot/data/junk/all
/theRoot/data-xml/junk/all
/theRoot/media/junk/all
/theRoot/verbatim/deal
/theRoot/media/only/media
/theRoot/data-orig/some/selected
/theRoot/data/some/selected

This is useful for programs such as rsync to ignore protected directories when syncing.

About

Generate httpd.conf stuff for protecting directories on Mac OS X

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published