summaryrefslogtreecommitdiff
path: root/contrib/pam_mount/README.md
diff options
context:
space:
mode:
authorJakob Unterwurzacher2016-10-08 17:36:35 +0200
committerJakob Unterwurzacher2016-10-08 22:30:13 +0200
commit610a242ec6429436b37b47dd357b0c777c620d65 (patch)
treefae6233a497181b95b8f530b06b64608a8f80519 /contrib/pam_mount/README.md
parentd25fcc6a4b095e37c77cce8f9de2ec0f12007ed5 (diff)
contrib: pam_mount: add documentation and wrapper
See ticket #34
Diffstat (limited to 'contrib/pam_mount/README.md')
-rw-r--r--contrib/pam_mount/README.md63
1 files changed, 63 insertions, 0 deletions
diff --git a/contrib/pam_mount/README.md b/contrib/pam_mount/README.md
new file mode 100644
index 0000000..9a64869
--- /dev/null
+++ b/contrib/pam_mount/README.md
@@ -0,0 +1,63 @@
+Mounting gocryptfs on login using pam_mount
+===========================================
+
+This works on Fedora 24 with active SELinux. Feedback on other platforms
+is welcome.
+
+gocryptfs
+---------
+
+Copy the `gocryptfs` binary and `gocryptfs_pam_mount.bash` into
+`/usr/local/bin` .
+
+The bash wrapper is neccessary because of the different calling
+conventions between pam_mount and gocryptfs.
+
+Create a gocryptfs filesystem:
+```
+$ mkdir /home/testuser/cipher /home/testuser/plain
+$ gocryptfs -init /home/testuser/cipher
+```
+
+pam_mount config
+----------------
+
+Put the following into `/etc/security/pam_mount.conf.xml`, just before
+the closing `</pam_mount>` tag at the bottom:
+
+```
+<volume user="testuser" fstype="fuse" options="defaults"
+path="/usr/local/bin/gocryptfs_pam_mount.bash#/home/%(USER)/cipher"
+mountpoint="/home/%(USER)/plain" />
+```
+
+If you want to disable the display of the masterkey on mount, replace
+`options="defaults"` with `options="quiet"`.
+
+PAM config
+----------
+
+An example `/etc/pam.d/login` on Fedora 24 is shown below. pam_mount
+MUST be called AFTER `pam_selinux.so open` because that puts us in the
+right SELinux context.
+
+```
+#%PAM-1.0
+auth substack system-auth
+auth include postlogin
+account required pam_nologin.so
+account include system-auth
+password include system-auth
+session required pam_selinux.so close
+session required pam_loginuid.so
+session optional pam_console.so
+session required pam_selinux.so open
+session required pam_namespace.so
+# vvv insert pam_mount here
+session optional pam_mount.so
+# ^^^ insert pam_mount here
+session optional pam_keyinit.so force revoke
+session include system-auth
+session include postlogin
+-session optional pam_ck_connector.so
+```