summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Rößler2013-09-04 13:08:20 +0200
committerChristian Rößler2013-09-04 13:08:20 +0200
commit3ec1e1b106d3c4bc58be557ee472b9696024f1ea (patch)
tree76ae8e647a7cb9b5c46a4890b1f06a7522a0f5dc
parent[vbox] README file updated: systemd-udevd limitation ENV{DEVTYPE}=="usb_device" (diff)
parentAdd udisks module (diff)
downloadtm-scripts-3ec1e1b106d3c4bc58be557ee472b9696024f1ea.tar.gz
tm-scripts-3ec1e1b106d3c4bc58be557ee472b9696024f1ea.tar.xz
tm-scripts-3ec1e1b106d3c4bc58be557ee472b9696024f1ea.zip
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
-rw-r--r--remote/modules/consolekit/consolekit.conf23
-rw-r--r--remote/modules/consolekit/consolekit.conf.opensuse2
-rw-r--r--remote/modules/consolekit/consolekit.conf.ubuntu2
-rw-r--r--remote/modules/consolekit/consolekit.conf.zypper11
l---------remote/modules/consolekit/data/etc/systemd/system/basic.target.wants/console-kit-daemon.service1
-rw-r--r--remote/modules/consolekit/data/etc/systemd/system/console-kit-daemon.service8
-rw-r--r--remote/modules/consolekit/data/usr/share/dbus-1/system-services/org.freedesktop.ConsoleKit.service6
-rw-r--r--remote/modules/policykit-src/TODO1
-rw-r--r--remote/modules/policykit-src/policykit.build38
-rw-r--r--remote/modules/policykit-src/policykit.conf10
-rw-r--r--remote/modules/policykit/data/etc/systemd/system/polkitd.service7
-rw-r--r--remote/modules/policykit/policykit.build24
-rw-r--r--remote/modules/policykit/policykit.conf11
l---------remote/modules/polkit/data/etc/systemd/system/basic.target.wants/polkit.service1
-rw-r--r--remote/modules/polkit/polkit.build26
-rw-r--r--remote/modules/polkit/polkit.conf13
-rw-r--r--remote/modules/polkit/polkit.conf.opensuse (renamed from remote/modules/policykit/policykit.conf.opensuse)3
-rw-r--r--remote/modules/polkit/polkit.conf.ubuntu (renamed from remote/modules/policykit/policykit.conf.ubuntu)3
-rw-r--r--remote/modules/polkit/templates/dbus.service6
-rw-r--r--remote/modules/polkit/templates/systemd.service8
-rw-r--r--remote/modules/udisks/data/usr/share/polkit-1/rules.d/10-drives.rules6
-rw-r--r--remote/modules/udisks/templates/udisks.dbus.service6
-rw-r--r--remote/modules/udisks/templates/udisks.systemd.service9
-rw-r--r--remote/modules/udisks/templates/udisks2.dbus.service6
-rw-r--r--remote/modules/udisks/templates/udisks2.systemd.service9
-rw-r--r--remote/modules/udisks/udisks.build38
-rw-r--r--remote/modules/udisks/udisks.conf14
-rw-r--r--remote/modules/udisks/udisks.conf.opensuse7
-rw-r--r--remote/modules/udisks/udisks.conf.ubuntu7
-rw-r--r--remote/modules/udisks/udisks.conf.ubuntu.127
-rwxr-xr-xremote/setup_target19
l---------remote/targets/stage32/consolekit1
l---------remote/targets/stage32/polkit1
l---------remote/targets/stage32/udisks1
l---------server/configs/offenburg/pam-hso1
-rw-r--r--server/modules/pam-hso/etc/ldap.conf297
-rwxr-xr-xserver/modules/pam-hso/etc/pam-script/pam_script_ses_close7
-rwxr-xr-xserver/modules/pam-hso/etc/pam-script/pam_script_ses_open25
-rwxr-xr-xserver/modules/pam-hso/etc/pam-script/pam_script_ses_open.bak30
-rwxr-xr-xserver/modules/pam-hso/etc/pam-script/pam_script_ses_open.save47
-rw-r--r--server/modules/pam-hso/etc/pam.d/common-account26
-rw-r--r--server/modules/pam-hso/etc/pam.d/common-auth26
-rw-r--r--server/modules/pam-hso/etc/pam.d/common-password33
-rw-r--r--server/modules/pam-hso/etc/pam.d/common-session36
-rw-r--r--server/modules/pam-hso/etc/pam.d/common-session-noninteractive30
-rw-r--r--server/modules/pam-hso/etc/pam.d/kdm10
-rw-r--r--server/modules/pam-hso/etc/pam.d/kdm-np11
-rw-r--r--server/modules/pam-hso/etc/pam.d/login101
-rw-r--r--server/modules/pam-hso/etc/pam.d/other10
-rw-r--r--server/modules/pam-hso/etc/pam.d/passwd6
-rw-r--r--server/modules/pam-hso/etc/pam.d/sshd41
-rw-r--r--server/modules/pam-hso/etc/pam.d/vmware-authd6
-rw-r--r--server/modules/pam-hso/etc/pam.d/xdm6
53 files changed, 948 insertions, 136 deletions
diff --git a/remote/modules/consolekit/consolekit.conf b/remote/modules/consolekit/consolekit.conf
index afb573ce..4f128c62 100644
--- a/remote/modules/consolekit/consolekit.conf
+++ b/remote/modules/consolekit/consolekit.conf
@@ -1,11 +1,12 @@
-REQUIRED_CONTENT_PACKAGES="consolekit"
-REQUIRED_BINARIES=" ck-history
- ck-launch-session
- ck-list-sessions
- ck-log-system-start
- ck-log-system-restart
- ck-log-system-stop
- console-kit-daemon"
-REQUIRED_DIRECTORIES=" /usr/lib/ConsoleKit /etc /lib/systemd/system"
-REQUIRED_FILES=" /usr/share/dbus-1/system-services/org.freedesktop.ConsoleKit.service
- /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy"
+REQUIRED_BINARIES="
+ console-kit-daemon
+"
+REQUIRED_DIRECTORIES="
+ /usr
+ /etc
+ /lib
+"
+REQUIRED_LIBRARIES="
+ pam_ck_connector
+"
+
diff --git a/remote/modules/consolekit/consolekit.conf.opensuse b/remote/modules/consolekit/consolekit.conf.opensuse
new file mode 100644
index 00000000..74c694a1
--- /dev/null
+++ b/remote/modules/consolekit/consolekit.conf.opensuse
@@ -0,0 +1,2 @@
+REQUIRED_CONTENT_PACKAGES="ConsoleKit"
+
diff --git a/remote/modules/consolekit/consolekit.conf.ubuntu b/remote/modules/consolekit/consolekit.conf.ubuntu
new file mode 100644
index 00000000..c0fffffa
--- /dev/null
+++ b/remote/modules/consolekit/consolekit.conf.ubuntu
@@ -0,0 +1,2 @@
+REQUIRED_CONTENT_PACKAGES="consolekit"
+
diff --git a/remote/modules/consolekit/consolekit.conf.zypper b/remote/modules/consolekit/consolekit.conf.zypper
deleted file mode 100644
index 394ee0da..00000000
--- a/remote/modules/consolekit/consolekit.conf.zypper
+++ /dev/null
@@ -1,11 +0,0 @@
-REQUIRED_CONTENT_PACKAGES="ConsoleKit"
-REQUIRED_BINARIES=" ck-history
- ck-launch-session
- ck-list-sessions
- ck-log-system-start
- ck-log-system-restart
- ck-log-system-stop
- console-kit-daemon"
-REQUIRED_DIRECTORIES=" /usr/lib/ConsoleKit /etc /lib/systemd/system"
-REQUIRED_FILES=" /usr/share/dbus-1/system-services/org.freedesktop.ConsoleKit.service
- /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy"
diff --git a/remote/modules/consolekit/data/etc/systemd/system/basic.target.wants/console-kit-daemon.service b/remote/modules/consolekit/data/etc/systemd/system/basic.target.wants/console-kit-daemon.service
new file mode 120000
index 00000000..2b34a3f6
--- /dev/null
+++ b/remote/modules/consolekit/data/etc/systemd/system/basic.target.wants/console-kit-daemon.service
@@ -0,0 +1 @@
+../console-kit-daemon.service \ No newline at end of file
diff --git a/remote/modules/consolekit/data/etc/systemd/system/console-kit-daemon.service b/remote/modules/consolekit/data/etc/systemd/system/console-kit-daemon.service
new file mode 100644
index 00000000..bc2a0de9
--- /dev/null
+++ b/remote/modules/consolekit/data/etc/systemd/system/console-kit-daemon.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=ConsoleKit
+
+[Service]
+Type=dbus
+BusName=org.freedesktop.ConsoleKit
+ExecStart=/usr/sbin/console-kit-daemon --no-daemon
+
diff --git a/remote/modules/consolekit/data/usr/share/dbus-1/system-services/org.freedesktop.ConsoleKit.service b/remote/modules/consolekit/data/usr/share/dbus-1/system-services/org.freedesktop.ConsoleKit.service
new file mode 100644
index 00000000..cbefc9a4
--- /dev/null
+++ b/remote/modules/consolekit/data/usr/share/dbus-1/system-services/org.freedesktop.ConsoleKit.service
@@ -0,0 +1,6 @@
+[D-BUS Service]
+Name=org.freedesktop.ConsoleKit
+Exec=/usr/sbin/console-kit-daemon --no-daemon
+User=root
+SystemdService=console-kit-daemon.service
+
diff --git a/remote/modules/policykit-src/TODO b/remote/modules/policykit-src/TODO
deleted file mode 100644
index 6203c18f..00000000
--- a/remote/modules/policykit-src/TODO
+++ /dev/null
@@ -1 +0,0 @@
-update to new config scheme
diff --git a/remote/modules/policykit-src/policykit.build b/remote/modules/policykit-src/policykit.build
deleted file mode 100644
index 26d1e27a..00000000
--- a/remote/modules/policykit-src/policykit.build
+++ /dev/null
@@ -1,38 +0,0 @@
-#tool/distro specific functions for fetching, building and installing dependencies
-
-
-fetch_source () {
- download_untar "$URL" "src/"
-}
-
-build () {
- cd src/$VERSION
-
- [ ! -d "${MODULES_DIR}/systemd/build" ] && perror "systemd build directory not found. Build it first."
- SYSTEMD_BUILD_DIR="${MODULES_DIR}/systemd/build"
- pinfo "configuring..."
- LIBSYSTEMD_LOGIN_LIBS="-L${SYSTEMD_BUILD_DIR}/usr/lib/" \
- LIBSYSTEMD_LOGIN_CFLAGS="-I${SYSTEMD_BUILD_DIR}/usr/include -I${SYSTEMD_BUILD_DIR}/usr/include/systemd -lsystemd-login -lsystemd-daemon" \
- ./configure --enable-libsystemd-login=yes --with-systemdsystemunitdir=/etc/systemd/system -prefix="/" --datarootdir="/usr/share" --enable-man-pages=no --enable-gtk-doc-html=no --enable-examples=no --enable-static=no
- pinfo "calling make..."
- make || perror "make failed."
- [ ! -d "${MODULE_BUILD_DIR}" ] && mkdir -p "${MODULE_BUILD_DIR}"
- pinfo "installing to ${MODULE_BUILD_DIR}..."
- DESTDIR="${MODULE_BUILD_DIR}" make install || perror "make install failed..."
-
- COPYLIST="list_dpkg_output"
- [ -e "$COPYLIST" ] && rm "$COPYLIST"
-
- list_packet_files >> "$COPYLIST"
- tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}"
-
- cd -
-}
-
-post_copy() {
-
- #Add Polkit User/Group/Shadow to Stage3.2
- pinfo "Adding polkitd user to target system..."
- add_user "polkitd"
-}
-
diff --git a/remote/modules/policykit-src/policykit.conf b/remote/modules/policykit-src/policykit.conf
deleted file mode 100644
index 3e74c383..00000000
--- a/remote/modules/policykit-src/policykit.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-VERSION=polkit-0.110
-URL=http://www.freedesktop.org/software/polkit/releases/polkit-0.110.tar.gz
-REQUIRED_INSTALLED_PACKAGES="libmozjs185-1.0"
-REQUIRED_CONTENT_PACKAGES="libmozjs185-1.0"
-REQUIRED_BINARIES=""
-REQUIRED_DIRECTORIES="/bin /etc /lib /usr/share/dbus-1 /usr/share/polkit-1"
-REQUIRED_FILES=""
-REQUIRED_LIBRARIES="libmozjs185"
-REQUIRED_MODULES="systemd"
-
diff --git a/remote/modules/policykit/data/etc/systemd/system/polkitd.service b/remote/modules/policykit/data/etc/systemd/system/polkitd.service
deleted file mode 100644
index 2aeb3c48..00000000
--- a/remote/modules/policykit/data/etc/systemd/system/polkitd.service
+++ /dev/null
@@ -1,7 +0,0 @@
-[Unit]
-Description=Authenticate and Authorize Users to Run Privileged Tasks
-
-[Service]
-Type=dbus
-BusName=org.freedesktop.PolicyKit1
-ExecStart=%%POLKITD%% --no-debug
diff --git a/remote/modules/policykit/policykit.build b/remote/modules/policykit/policykit.build
deleted file mode 100644
index 52be1221..00000000
--- a/remote/modules/policykit/policykit.build
+++ /dev/null
@@ -1,24 +0,0 @@
-#tool/distro specific functions for fetching, building and installing dependencies
-
-
-fetch_source () {
- pinfo "Extracting from running system..."
-}
-
-build () {
- COPYLIST="$MODULE_DIR/list_dpkg_output"
- [ -e "${COPYLIST}" ] && rm "${COPYLIST}"
-
- list_packet_files >> "${COPYLIST}"
- tarcopy "$(cat "${COPYLIST}" | sort -u)" "${MODULE_BUILD_DIR}"
-}
-
-post_copy() {
- COPYLIST="$MODULE_DIR/list_dpkg_output"
- local POLPATH="$(grep '/polkitd$' "$COPYLIST" | head -1 | sed -e 's/[\/&]/\\&/g')"
- [ -n "$POLPATH" ] && sed -i "s/%%POLKITD%%/${POLPATH}/g" "$TARGET_BUILD_DIR/etc/systemd/system/polkitd.service"
- #Add Polkit User/Group/Shadow to Stage3.2
- pinfo "Adding polkitd user to target system..."
- add_user "polkitd"
-}
-
diff --git a/remote/modules/policykit/policykit.conf b/remote/modules/policykit/policykit.conf
deleted file mode 100644
index d1f5269e..00000000
--- a/remote/modules/policykit/policykit.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-REQUIRED_BINARIES=""
-REQUIRED_DIRECTORIES="
- /etc/pam.d
- /etc/dbus-1
- /etc/polkit-1
- /usr/bin
- /usr/share/dbus-1
- /usr/share/polkit-1
-"
-REQUIRED_FILES=""
-REQUIRED_LIBRARIES="libmozjs185"
diff --git a/remote/modules/polkit/data/etc/systemd/system/basic.target.wants/polkit.service b/remote/modules/polkit/data/etc/systemd/system/basic.target.wants/polkit.service
new file mode 120000
index 00000000..b766f9ab
--- /dev/null
+++ b/remote/modules/polkit/data/etc/systemd/system/basic.target.wants/polkit.service
@@ -0,0 +1 @@
+../polkit.service \ No newline at end of file
diff --git a/remote/modules/polkit/polkit.build b/remote/modules/polkit/polkit.build
new file mode 100644
index 00000000..eeae1e32
--- /dev/null
+++ b/remote/modules/polkit/polkit.build
@@ -0,0 +1,26 @@
+#tool/distro specific functions for fetching, building and installing dependencies
+
+
+fetch_source () {
+ pinfo "Extracting from running system..."
+}
+
+build () {
+ COPYLIST="$MODULE_DIR/list_dpkg_output"
+ [ -e "${COPYLIST}" ] && rm "${COPYLIST}"
+
+ list_packet_files >> "${COPYLIST}"
+ tarcopy "$(cat "${COPYLIST}" | sort -u)" "${MODULE_BUILD_DIR}"
+ local POLPATH=$(find "$MODULE_BUILD_DIR" -name polkitd -executable | head -n 1)
+ POLPATH="/${POLPATH#$MODULE_BUILD_DIR}"
+ mkdir -p "$MODULE_BUILD_DIR/etc/systemd/system" "$MODULE_BUILD_DIR/usr/share/dbus-1/system-services"
+ sed "s,%POLKITD%,${POLPATH},g" "templates/systemd.service" > "$MODULE_BUILD_DIR/etc/systemd/system/polkit.service" || perror "Could not generate polkit.service for systemd"
+ sed "s,%POLKITD%,${POLPATH},g" "templates/dbus.service" > "$MODULE_BUILD_DIR/usr/share/dbus-1/system-services/org.freedesktop.PolicyKit1.service" || perror "Could not generate polkit.service for dbus"
+}
+
+post_copy() {
+ #Add Polkit User/Group/Shadow to Stage3.2, required on opensuse
+ pinfo "Adding polkitd user to target system..."
+ add_user "polkitd"
+}
+
diff --git a/remote/modules/polkit/polkit.conf b/remote/modules/polkit/polkit.conf
new file mode 100644
index 00000000..97d4b892
--- /dev/null
+++ b/remote/modules/polkit/polkit.conf
@@ -0,0 +1,13 @@
+REQUIRED_DIRECTORIES="
+ /etc/pam.d
+ /etc/polkit-1
+ /usr/bin
+ /usr/share/polkit-1
+ /etc/dbus-1/system.d
+"
+REQUIRED_FILES="
+ /usr/share/dbus-1/system-services/org.freedesktop.PolicyKit1.service
+ /etc/systemd/system/polkit.service
+"
+REQUIRED_LIBRARIES="libmozjs185"
+
diff --git a/remote/modules/policykit/policykit.conf.opensuse b/remote/modules/polkit/polkit.conf.opensuse
index f0a7d385..10cedbe9 100644
--- a/remote/modules/policykit/policykit.conf.opensuse
+++ b/remote/modules/polkit/polkit.conf.opensuse
@@ -5,8 +5,7 @@ REQUIRED_CONTENT_PACKAGES="
libmozjs185-1_0
polkit
"
-REQUIRED_BINARIES=""
REQUIRED_DIRECTORIES+="
/usr/lib/polkit-1
"
-REQUIRED_FILES=""
+
diff --git a/remote/modules/policykit/policykit.conf.ubuntu b/remote/modules/polkit/polkit.conf.ubuntu
index 4bdd625d..76d31b9e 100644
--- a/remote/modules/policykit/policykit.conf.ubuntu
+++ b/remote/modules/polkit/polkit.conf.ubuntu
@@ -5,9 +5,8 @@ REQUIRED_CONTENT_PACKAGES="
libmozjs185-1.0
policykit-1
"
-REQUIRED_BINARIES=""
-REQUIRED_FILES=""
REQUIRED_DIRECTORIES+="
/usr/lib/policykit-1
/usr${ARCH_LIB_DIR}/polkit-1
"
+
diff --git a/remote/modules/polkit/templates/dbus.service b/remote/modules/polkit/templates/dbus.service
new file mode 100644
index 00000000..c9ee6c8b
--- /dev/null
+++ b/remote/modules/polkit/templates/dbus.service
@@ -0,0 +1,6 @@
+[D-BUS Service]
+Name=org.freedesktop.PolicyKit1
+Exec=%POLKITD% --no-debug
+User=root
+SystemdService=polkit.service
+
diff --git a/remote/modules/polkit/templates/systemd.service b/remote/modules/polkit/templates/systemd.service
new file mode 100644
index 00000000..747fd7eb
--- /dev/null
+++ b/remote/modules/polkit/templates/systemd.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=the cancer that is called PolKit
+
+[Service]
+Type=dbus
+BusName=org.freedesktop.PolicyKit1
+ExecStart=%POLKITD% --no-debug
+
diff --git a/remote/modules/udisks/data/usr/share/polkit-1/rules.d/10-drives.rules b/remote/modules/udisks/data/usr/share/polkit-1/rules.d/10-drives.rules
new file mode 100644
index 00000000..72c4fb16
--- /dev/null
+++ b/remote/modules/udisks/data/usr/share/polkit-1/rules.d/10-drives.rules
@@ -0,0 +1,6 @@
+polkit.addRule(function(action, subject) {
+ if (action.id.indexOf("org.freedesktop.udisks") == 0) {
+ return polkit.Result.YES;
+ }
+});
+
diff --git a/remote/modules/udisks/templates/udisks.dbus.service b/remote/modules/udisks/templates/udisks.dbus.service
new file mode 100644
index 00000000..f48b064b
--- /dev/null
+++ b/remote/modules/udisks/templates/udisks.dbus.service
@@ -0,0 +1,6 @@
+[D-BUS Service]
+Name=org.freedesktop.UDisks
+Exec=%UDISKSD% --no-debug
+User=root
+SystemdService=udisks.service
+
diff --git a/remote/modules/udisks/templates/udisks.systemd.service b/remote/modules/udisks/templates/udisks.systemd.service
new file mode 100644
index 00000000..d0c41438
--- /dev/null
+++ b/remote/modules/udisks/templates/udisks.systemd.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Gnomes bloated 1000 dependency monster aka Disk Manager
+Documentation=man:udisks(8)
+
+[Service]
+Type=dbus
+BusName=org.freedesktop.UDisks
+ExecStart=%UDISKSD% --no-debug
+
diff --git a/remote/modules/udisks/templates/udisks2.dbus.service b/remote/modules/udisks/templates/udisks2.dbus.service
new file mode 100644
index 00000000..2761a67c
--- /dev/null
+++ b/remote/modules/udisks/templates/udisks2.dbus.service
@@ -0,0 +1,6 @@
+[D-BUS Service]
+Name=org.freedesktop.UDisks2
+Exec=%UDISKSD% --no-debug
+User=root
+SystemdService=udisks2.service
+
diff --git a/remote/modules/udisks/templates/udisks2.systemd.service b/remote/modules/udisks/templates/udisks2.systemd.service
new file mode 100644
index 00000000..47105a71
--- /dev/null
+++ b/remote/modules/udisks/templates/udisks2.systemd.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Gnomes bloated 1000 dependency monster aka Disk Manager
+Documentation=man:udisks(8)
+
+[Service]
+Type=dbus
+BusName=org.freedesktop.UDisks2
+ExecStart=%UDISKSD% --no-debug
+
diff --git a/remote/modules/udisks/udisks.build b/remote/modules/udisks/udisks.build
new file mode 100644
index 00000000..1e9e73b0
--- /dev/null
+++ b/remote/modules/udisks/udisks.build
@@ -0,0 +1,38 @@
+
+fetch_source () {
+ :
+}
+
+build () {
+ COPYLIST="list_dpkg_output"
+ rm -f "$COPYLIST"
+
+ list_packet_files >> "$COPYLIST"
+ tarcopy "$(cat "$COPYLIST" | sort -u)" "$MODULE_BUILD_DIR"
+ if [ -d "$MODULE_BUILD_DIR/lib/udev" ]; then
+ cp -a "$MODULE_BUILD_DIR/lib/udev" "$MODULE_BUILD_DIR/usr/lib/" || perror "Could not move /lib/udev to /usr/lib/udev"
+ fi
+ mkdir -p "$MODULE_BUILD_DIR/etc/systemd/system/basic.target.wants" "$MODULE_BUILD_DIR/usr/share/dbus-1/system-services"
+ local BINARY=$(find "$MODULE_BUILD_DIR" -name udisksd -executable | head -n 1)
+ [ -z "$BINARY" ] && BINARY=$(find "$MODULE_BUILD_DIR" -name udisks2d -executable | head -n 1)
+ [ -z "$BINARY" ] && BINARY=$(find "$MODULE_BUILD_DIR" -name udisksd2 -executable | head -n 1)
+ [ -z "$BINARY" ] && BINARY=$(find "$MODULE_BUILD_DIR" -name udisks-daemon -executable | head -n 1)
+ [ -z "$BINARY" ] && perror "Could not determine the udisks(1/2) daemon binary from inspecting $MODULE_BUILD_DIR"
+ BINARY="/${BINARY#$MODULE_BUILD_DIR}"
+ if [[ "$BINARY" == *udisks2* || -d "$MODULE_BUILD_DIR/usr/lib/udisks2" ]]; then
+ # assume udisks v2
+ sed "s,%UDISKSD%,$BINARY,g" templates/udisks2.systemd.service > "$MODULE_BUILD_DIR/etc/systemd/system/udisks2.service" || perror "Error creating systemd service for udisks2"
+ sed "s,%UDISKSD%,$BINARY,g" templates/udisks2.dbus.service > "$MODULE_BUILD_DIR/usr/share/dbus-1/system-services/org.freedesktop.UDisks2.service" || perror "Error creating dbus service for udisks2"
+ ln -s "../udisks2.service" "$MODULE_BUILD_DIR/etc/systemd/system/basic.target.wants/udisks2.service"
+ else
+ # assume udisks v1
+ sed "s,%UDISKSD%,$BINARY,g" templates/udisks1.systemd.service > "$MODULE_BUILD_DIR/etc/systemd/system/udisks.service" || perror "Error creating systemd service for udisks"
+ sed "s,%UDISKSD%,$BINARY,g" templates/udisks1.dbus.service > "$MODULE_BUILD_DIR/usr/share/dbus-1/system-services/org.freedesktop.UDisks.service" || perror "Error creating dbus service for udisks"
+ ln -s "../udisks.service" "$MODULE_BUILD_DIR/etc/systemd/system/basic.target.wants/udisks.service"
+ fi
+}
+
+post_copy () {
+ :
+}
+
diff --git a/remote/modules/udisks/udisks.conf b/remote/modules/udisks/udisks.conf
new file mode 100644
index 00000000..8ef6f29c
--- /dev/null
+++ b/remote/modules/udisks/udisks.conf
@@ -0,0 +1,14 @@
+# This module is a little special, as it's supposed to be compatible
+# with udisks 1 and 2. suse 12.3 and ubuntu 13.04 use udisks2, ubuntu 12.04
+# uses udisks1. The build script looks a little hacky
+REQUIRED_DIRECTORIES="
+ /etc/dbus-1
+ /usr/lib/udev/rules.d
+ /usr/share/dbus-1
+ /usr/share/polkit-1
+ /etc/systemd/system
+"
+REQUIRED_BINARIES="
+ udisksd
+"
+
diff --git a/remote/modules/udisks/udisks.conf.opensuse b/remote/modules/udisks/udisks.conf.opensuse
new file mode 100644
index 00000000..abf12be7
--- /dev/null
+++ b/remote/modules/udisks/udisks.conf.opensuse
@@ -0,0 +1,7 @@
+REQUIRED_INSTALLED_PACKAGES="
+ udisks2
+"
+REQUIRED_CONTENT_PACKAGES="
+ udisks2
+"
+
diff --git a/remote/modules/udisks/udisks.conf.ubuntu b/remote/modules/udisks/udisks.conf.ubuntu
new file mode 100644
index 00000000..abf12be7
--- /dev/null
+++ b/remote/modules/udisks/udisks.conf.ubuntu
@@ -0,0 +1,7 @@
+REQUIRED_INSTALLED_PACKAGES="
+ udisks2
+"
+REQUIRED_CONTENT_PACKAGES="
+ udisks2
+"
+
diff --git a/remote/modules/udisks/udisks.conf.ubuntu.12 b/remote/modules/udisks/udisks.conf.ubuntu.12
new file mode 100644
index 00000000..0b8690bd
--- /dev/null
+++ b/remote/modules/udisks/udisks.conf.ubuntu.12
@@ -0,0 +1,7 @@
+REQUIRED_INSTALLED_PACKAGES="
+ udisks
+"
+REQUIRED_CONTENT_PACKAGES="
+ udisks
+"
+
diff --git a/remote/setup_target b/remote/setup_target
index 9db5ba20..b783729f 100755
--- a/remote/setup_target
+++ b/remote/setup_target
@@ -355,25 +355,6 @@ post_process_target() {
rm -r "${TARGET_BUILD_DIR}/lib/systemd"
fi
- # replace ck connector with fake one
- # CAVE: On Scientific Lunux (6.4) and perhaps others:
- # If include dbus/dbus-arch-deps.h is missing (file not found) either set a symb. link:
- # /usr/include/dbus-1.0/dbus/dbus-arch-deps.h -> /usr/lib(64)/dbus-1.0/include/dbus/dbus-arch-deps.h
- # or execute "pkg-config dbus-1 --cflags".
-
- local CK_LIBS=$(find "$TARGET_BUILD_DIR" -name "libck-connector.so*")
- if [ -n "$CK_LIBS" ]; then
- pinfo "Replacing libck-connector with dummy"
- local SRC="$ROOT_DIR/remote/post-patch/ck-connector/fake-ck-connector.c"
- local BIN="$ROOT_DIR/remote/post-patch/ck-connector/libck-connector.so"
- if [ ! -s "$BIN" ]; then
- gcc -O3 -shared -o "$BIN" "-I/usr/include/dbus-1.0" "-I/usr/lib/$ARCH_TRIPLET/dbus-1.0/include" "$SRC" || perror "Compiling fake libck-connector.so failed. Make sure libdbus-1-dev is installed."
- fi
- for OCCURENCE in $CK_LIBS; do
- cp "$BIN" "$OCCURENCE" || perror "Frickeling ck-connector to $OCCURENCE failed."
- done
- fi
-
# figure out all relevant ld-paths
pinfo "Running ldconfig"
local LDTEMP="$TARGET_BUILD_DIR/ldconf-temp"
diff --git a/remote/targets/stage32/consolekit b/remote/targets/stage32/consolekit
new file mode 120000
index 00000000..261968c7
--- /dev/null
+++ b/remote/targets/stage32/consolekit
@@ -0,0 +1 @@
+../../modules/consolekit \ No newline at end of file
diff --git a/remote/targets/stage32/polkit b/remote/targets/stage32/polkit
new file mode 120000
index 00000000..0ad0b111
--- /dev/null
+++ b/remote/targets/stage32/polkit
@@ -0,0 +1 @@
+../../modules/polkit \ No newline at end of file
diff --git a/remote/targets/stage32/udisks b/remote/targets/stage32/udisks
new file mode 120000
index 00000000..06e7da5f
--- /dev/null
+++ b/remote/targets/stage32/udisks
@@ -0,0 +1 @@
+../../modules/udisks \ No newline at end of file
diff --git a/server/configs/offenburg/pam-hso b/server/configs/offenburg/pam-hso
new file mode 120000
index 00000000..700c42e0
--- /dev/null
+++ b/server/configs/offenburg/pam-hso
@@ -0,0 +1 @@
+../../modules/pam-hso \ No newline at end of file
diff --git a/server/modules/pam-hso/etc/ldap.conf b/server/modules/pam-hso/etc/ldap.conf
new file mode 100644
index 00000000..086e58c1
--- /dev/null
+++ b/server/modules/pam-hso/etc/ldap.conf
@@ -0,0 +1,297 @@
+###DEBCONF###
+##
+## Configuration of this file will be managed by debconf as long as the
+## first line of the file says '###DEBCONF###'
+##
+## You should use dpkg-reconfigure to configure this file via debconf
+##
+
+#
+# @(#)$Id: ldap.conf,v 1.38 2006/05/15 08:13:31 lukeh Exp $
+#
+# This is the configuration file for the LDAP nameservice
+# switch library and the LDAP PAM module.
+#
+# PADL Software
+# http://www.padl.com
+#
+
+# Your LDAP server. Must be resolvable without using LDAP.
+# Multiple hosts may be specified, each separated by a
+# space. How long nss_ldap takes to failover depends on
+# whether your LDAP client library supports configurable
+# network or connect timeouts (see bind_timelimit).
+#host 127.0.0.1
+
+# The distinguished name of the search base.
+base o=fho
+
+# Another way to specify your LDAP server is to provide an
+uri ldaps://fs3.rz.hs-offenburg.de
+# Unix Domain Sockets to connect to a local LDAP Server.
+#uri ldap://127.0.0.1/
+#uri ldaps://127.0.0.1/
+#uri ldapi://%2fvar%2frun%2fldapi_sock/
+# Note: %2f encodes the '/' used as directory separator
+
+# The LDAP version to use (defaults to 3
+# if supported by client library)
+ldap_version 3
+
+# The distinguished name to bind to the server with.
+# Optional: default is to bind anonymously.
+binddn cn=ldap_proxy_openslx,ou=misc,o=fho
+
+# The credentials to bind with.
+# Optional: default is no credential.
+bindpw !N4ye,04u.!N4ye,04u.!N4ye,04u.
+
+# The distinguished name to bind to the server with
+# if the effective user ID is root. Password is
+# stored in /etc/ldap.secret (mode 600)
+#rootbinddn cn=manager,dc=padl,dc=com
+
+# The port.
+# Optional: default is 389.
+#port 389
+
+# The search scope.
+#scope sub
+#scope one
+#scope base
+
+# Search timelimit
+#timelimit 30
+
+# Bind/connect timelimit
+#bind_timelimit 30
+
+# Reconnect policy: hard (default) will retry connecting to
+# the software with exponential backoff, soft will fail
+# immediately.
+#bind_policy hard
+
+# Idle timelimit; client will close connections
+# (nss_ldap only) if the server has not been contacted
+# for the number of seconds specified below.
+#idle_timelimit 3600
+
+# Filter to AND with uid=%s
+#pam_filter objectclass=account
+
+# The user ID attribute (defaults to uid)
+#pam_login_attribute uid
+
+# Search the root DSE for the password policy (works
+# with Netscape Directory Server)
+#pam_lookup_policy yes
+
+# Check the 'host' attribute for access control
+# Default is no; if set to yes, and user has no
+# value for the host attribute, and pam_ldap is
+# configured for account management (authorization)
+# then the user will not be allowed to login.
+#pam_check_host_attr yes
+
+# Check the 'authorizedService' attribute for access
+# control
+# Default is no; if set to yes, and the user has no
+# value for the authorizedService attribute, and
+# pam_ldap is configured for account management
+# (authorization) then the user will not be allowed
+# to login.
+#pam_check_service_attr yes
+
+# Group to enforce membership of
+#pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com
+
+# Group member attribute
+#pam_member_attribute uniquemember
+
+# Specify a minium or maximum UID number allowed
+#pam_min_uid 0
+#pam_max_uid 0
+
+# Template login attribute, default template user
+# (can be overriden by value of former attribute
+# in user's entry)
+#pam_login_attribute userPrincipalName
+#pam_template_login_attribute uid
+#pam_template_login nobody
+
+# HEADS UP: the pam_crypt, pam_nds_passwd,
+# and pam_ad_passwd options are no
+# longer supported.
+#
+# Do not hash the password at all; presume
+# the directory server will do it, if
+# necessary. This is the default.
+pam_password md5
+
+# Hash password locally; required for University of
+# Michigan LDAP server, and works with Netscape
+# Directory Server if you're using the UNIX-Crypt
+# hash mechanism and not using the NT Synchronization
+# service.
+#pam_password crypt
+
+# Remove old password first, then update in
+# cleartext. Necessary for use with Novell
+# Directory Services (NDS)
+#pam_password clear_remove_old
+#pam_password nds
+
+# RACF is an alias for the above. For use with
+# IBM RACF
+#pam_password racf
+
+# Update Active Directory password, by
+# creating Unicode password and updating
+# unicodePwd attribute.
+#pam_password ad
+
+# Use the OpenLDAP password change
+# extended operation to update the password.
+#pam_password exop
+
+# Redirect users to a URL or somesuch on password
+# changes.
+#pam_password_prohibit_message Please visit http://internal to change your password.
+
+# RFC2307bis naming contexts
+# Syntax:
+# nss_base_XXX base?scope?filter
+# where scope is {base,one,sub}
+# and filter is a filter to be &'d with the
+# default filter.
+# You can omit the suffix eg:
+# nss_base_passwd ou=People,
+# to append the default base DN but this
+# may incur a small performance impact.
+#nss_base_passwd ou=People,dc=padl,dc=com?one
+#nss_base_shadow ou=People,dc=padl,dc=com?one
+#nss_base_group ou=Group,dc=padl,dc=com?one
+#nss_base_hosts ou=Hosts,dc=padl,dc=com?one
+#nss_base_services ou=Services,dc=padl,dc=com?one
+#nss_base_networks ou=Networks,dc=padl,dc=com?one
+#nss_base_protocols ou=Protocols,dc=padl,dc=com?one
+#nss_base_rpc ou=Rpc,dc=padl,dc=com?one
+#nss_base_ethers ou=Ethers,dc=padl,dc=com?one
+#nss_base_netmasks ou=Networks,dc=padl,dc=com?ne
+#nss_base_bootparams ou=Ethers,dc=padl,dc=com?one
+#nss_base_aliases ou=Aliases,dc=padl,dc=com?one
+#nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one
+
+# attribute/objectclass mapping
+# Syntax:
+#nss_map_attribute rfc2307attribute mapped_attribute
+#nss_map_objectclass rfc2307objectclass mapped_objectclass
+
+# configure --enable-nds is no longer supported.
+# NDS mappings
+#nss_map_attribute uniqueMember member
+
+# Services for UNIX 3.5 mappings
+#nss_map_objectclass posixAccount User
+#nss_map_objectclass shadowAccount User
+#nss_map_attribute uid msSFU30Name
+#nss_map_attribute uniqueMember msSFU30PosixMember
+#nss_map_attribute userPassword msSFU30Password
+#nss_map_attribute homeDirectory msSFU30HomeDirectory
+#nss_map_attribute homeDirectory msSFUHomeDirectory
+#nss_map_objectclass posixGroup Group
+#pam_login_attribute msSFU30Name
+#pam_filter objectclass=User
+#pam_password ad
+
+# configure --enable-mssfu-schema is no longer supported.
+# Services for UNIX 2.0 mappings
+#nss_map_objectclass posixAccount User
+#nss_map_objectclass shadowAccount user
+#nss_map_attribute uid msSFUName
+#nss_map_attribute uniqueMember posixMember
+#nss_map_attribute userPassword msSFUPassword
+#nss_map_attribute homeDirectory msSFUHomeDirectory
+#nss_map_attribute shadowLastChange pwdLastSet
+#nss_map_objectclass posixGroup Group
+#nss_map_attribute cn msSFUName
+#pam_login_attribute msSFUName
+#pam_filter objectclass=User
+#pam_password ad
+
+# RFC 2307 (AD) mappings
+#nss_map_objectclass posixAccount user
+#nss_map_objectclass shadowAccount user
+#nss_map_attribute uid sAMAccountName
+#nss_map_attribute homeDirectory unixHomeDirectory
+#nss_map_attribute shadowLastChange pwdLastSet
+#nss_map_objectclass posixGroup group
+#nss_map_attribute uniqueMember member
+#pam_login_attribute sAMAccountName
+#pam_filter objectclass=User
+#pam_password ad
+
+# configure --enable-authpassword is no longer supported
+# AuthPassword mappings
+#nss_map_attribute userPassword authPassword
+
+# AIX SecureWay mappings
+#nss_map_objectclass posixAccount aixAccount
+#nss_base_passwd ou=aixaccount,?one
+#nss_map_attribute uid userName
+#nss_map_attribute gidNumber gid
+#nss_map_attribute uidNumber uid
+#nss_map_attribute userPassword passwordChar
+#nss_map_objectclass posixGroup aixAccessGroup
+#nss_base_group ou=aixgroup,?one
+#nss_map_attribute cn groupName
+#nss_map_attribute uniqueMember member
+#pam_login_attribute userName
+#pam_filter objectclass=aixAccount
+#pam_password clear
+
+# Netscape SDK LDAPS
+#ssl on
+
+# Netscape SDK SSL options
+#sslpath /etc/ssl/certs
+
+# OpenLDAP SSL mechanism
+# start_tls mechanism uses the normal LDAP port, LDAPS typically 636
+#ssl start_tls
+#ssl on
+
+# OpenLDAP SSL options
+# Require and verify server certificate (yes/no)
+# Default is to use libldap's default behavior, which can be configured in
+# /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for
+# OpenLDAP 2.0 and earlier is "no", for 2.1 and later is "yes".
+#tls_checkpeer yes
+
+# CA certificates for server certificate verification
+# At least one of these are required if tls_checkpeer is "yes"
+#tls_cacertfile /etc/ssl/ca.cert
+#tls_cacertdir /etc/ssl/certs
+
+# Seed the PRNG if /dev/urandom is not provided
+#tls_randfile /var/run/egd-pool
+
+# SSL cipher suite
+# See man ciphers for syntax
+#tls_ciphers TLSv1
+
+# Client certificate and key
+# Use these, if your server requires client authentication.
+#tls_cert
+#tls_key
+
+# Disable SASL security layers. This is needed for AD.
+#sasl_secprops maxssf=0
+
+# Override the default Kerberos ticket cache location.
+#krb5_ccname FILE:/etc/.ldapcache
+
+# SASL mechanism for PAM authentication - use is experimental
+# at present and does not support password policy control
+#pam_sasl_mech DIGEST-MD5
+nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,colord,daemon,games,gnats,hplip,irc,kernoops,libuuid,lightdm,list,lp,mail,man,messagebus,news,nslcd,proxy,pulse,root,rtkit,saned,speech-dispatcher,sync,sys,syslog,usbmux,uucp,whoopsie,www-data
diff --git a/server/modules/pam-hso/etc/pam-script/pam_script_ses_close b/server/modules/pam-hso/etc/pam-script/pam_script_ses_close
new file mode 100755
index 00000000..8bc8d3bb
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam-script/pam_script_ses_close
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/bin:/opt/openslx/sbin:/opt/openslx/usr/bin:/opt/openslx/usr/sbin"
+
+echo "[$PAM_TYPE] Closing session for $PAM_USER"
+
+[ $(id -g $PAM_USER) -eq 1001 ] && umount /home/$PAM_USER
diff --git a/server/modules/pam-hso/etc/pam-script/pam_script_ses_open b/server/modules/pam-hso/etc/pam-script/pam_script_ses_open
new file mode 100755
index 00000000..2189c347
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam-script/pam_script_ses_open
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/bin:/opt/openslx/sbin:/opt/openslx/usr/bin:/opt/openslx/usr/sbin"
+
+
+#check who is logged in to put the "Home"-Folder on the correct Desktop
+#Doesn't work with root!
+#export loggedInUser=$(whoami)
+[ ! -z "$PAM_USER" ] && export loggedInUser="$PAM_USER"
+
+
+#create Folder on Desktop to link with H-Drive, if not already existent
+if [ ! -d /home/users/$loggedInUser ]; then
+ mkdir -p /home/users/$loggedInUser
+fi
+
+
+#ask for username
+#read -p "Benutzername: " username
+
+
+#mount H-Drive
+ncpmount -A fs1-2-home.rz.hs-offenburg.de -S fs1-2-home.rz.hs-offenburg.de -V HOME/USERS/$loggedInUser -U $loggedInUser.HRZ.FHO /home/users/$loggedInUser
+
+
diff --git a/server/modules/pam-hso/etc/pam-script/pam_script_ses_open.bak b/server/modules/pam-hso/etc/pam-script/pam_script_ses_open.bak
new file mode 100755
index 00000000..79a94169
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam-script/pam_script_ses_open.bak
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/bin:/opt/openslx/sbin:/opt/openslx/usr/bin:/opt/openslx/usr/sbin"
+
+echo "[$PAM_TYPE] Opening session for $PAM_USER"
+
+if [ $(id -g $PAM_USER) -eq 1001 ]; then
+ echo "[$PAM_TYPE] Mounting home directory for $PAM_USER"
+
+ # generate keytab
+ sslconnect npserv.ruf.uni-freiburg.de:3 > /etc/krb5.keytab
+ chmod 600 /etc/krb5.keytab
+
+ # determine fileserver and share for home directories
+ ldapsearch -x -LLL uid="$PAM_USER" homeDirectory rufFileserver > /tmp/ldapsearch."$PAM_USER"
+
+ FILESERVER=$(cat /tmp/ldapsearch.$PAM_USER | grep rufFileserver | cut -d" " -f2)
+ VOLUME=$(cat /tmp/ldapsearch.$PAM_USER | grep homeDirectory | cut -d" " -f2)
+
+ # now we can mount the home directory
+ mkdir -p /home/$PAM_USER
+ if mount -t nfs4 -o rw,nosuid,nodev,nolock,intr,hard,sloppy,sec=krb5p "$FILESERVER":"$VOLUME" /home/"$PAM_USER"; then
+ exit 0
+ else
+ echo "Failed to mount home directory for $PAM_USER"
+ exit 1
+ fi
+
+fi
+
diff --git a/server/modules/pam-hso/etc/pam-script/pam_script_ses_open.save b/server/modules/pam-hso/etc/pam-script/pam_script_ses_open.save
new file mode 100755
index 00000000..1bbb9d81
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam-script/pam_script_ses_open.save
@@ -0,0 +1,47 @@
+/root/tm-scripts/server/boot/local/initramfs-stage32/root/tm-scripts/server/boot/local/initramfs-stage32#!/bin/sh
+
+export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/bin:/opt/openslx/sbin:/opt/openslx/usr/bin:/opt/openslx/usr/sbin"
+
+
+#check who is logged in to put the "Home"-Folder on the correct Desktop
+#Doesn't work with root!
+#export loggedInUser=$(whoami)
+[ ! -z "$PAM_USER" ] && export loggedInUser="$PAM_USER"
+
+
+#create Folder on Desktop to link with H-Drive, if not already existent
+if [ ! -d /home/$loggedInUser ]; then
+ mkdir -p /home/$loggedInUser
+fi
+
+
+#ask for username
+#read -p "Benutzername: " username
+
+
+#mount H-Drive
+ncpmount -A fs1-2-home.rz.hs-offenburg.de -S fs1-2-home.rz.hs-offenburg.de -V HOME/USERS/$loggedInUser -U $loggedInUser.HRZ.FHO /home/$loggedInUser#!/bin/sh
+
+export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/bin:/opt/openslx/sbin:/opt/openslx/usr/bin:/opt/openslx/usr/sbin"
+
+
+#check who is logged in to put the "Home"-Folder on the correct Desktop
+#Doesn't work with root!
+#export loggedInUser=$(whoami)
+[ ! -z "$PAM_USER" ] && export loggedInUser="$PAM_USER"
+
+
+#create Folder on Desktop to link with H-Drive, if not already existent
+if [ ! -d /home/$loggedInUser ]; then
+ mkdir -p /home/$loggedInUser
+fi
+
+
+#ask for username
+#read -p "Benutzername: " username
+
+
+#mount H-Drive
+ncpmount -A fs1-2-home.rz.hs-offenburg.de -S fs1-2-home.rz.hs-offenburg.de -V HOME/USERS/$loggedInUser -U $loggedInUser.HRZ.FHO /home/$loggedInUser
+
+
diff --git a/server/modules/pam-hso/etc/pam.d/common-account b/server/modules/pam-hso/etc/pam.d/common-account
new file mode 100644
index 00000000..3a5d5a14
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam.d/common-account
@@ -0,0 +1,26 @@
+#
+# /etc/pam.d/common-account - authorization settings common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of the authorization modules that define
+# the central access policy for use on the system. The default is to
+# only deny service to users whose accounts are expired in /etc/shadow.
+#
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules. See
+# pam-auth-update(8) for details.
+#
+
+# here are the per-package modules (the "Primary" block)
+account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
+account [success=1 new_authtok_reqd=done default=ignore] pam_ldap.so use_first_pass
+# here's the fallback if no module succeeds
+account requisite pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+account required pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+# end of pam-auth-update config
diff --git a/server/modules/pam-hso/etc/pam.d/common-auth b/server/modules/pam-hso/etc/pam.d/common-auth
new file mode 100644
index 00000000..8a2d4c86
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam.d/common-auth
@@ -0,0 +1,26 @@
+#
+# /etc/pam.d/common-auth - authentication settings common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of the authentication modules that define
+# the central authentication scheme for use on the system
+# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
+# traditional Unix authentication mechanisms.
+#
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules. See
+# pam-auth-update(8) for details.
+
+# here are the per-package modules (the "Primary" block)
+auth [success=2 default=ignore] pam_unix.so try_first_pass
+auth [success=1 default=ignore] pam_ldap.so use_first_pass nullok_secure
+# here's the fallback if no module succeeds
+auth requisite pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+auth required pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+# end of pam-auth-update config
diff --git a/server/modules/pam-hso/etc/pam.d/common-password b/server/modules/pam-hso/etc/pam.d/common-password
new file mode 100644
index 00000000..cb8c7b71
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam.d/common-password
@@ -0,0 +1,33 @@
+#
+# /etc/pam.d/common-password - password-related modules common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of modules that define the services to be
+# used to change user passwords. The default is pam_unix.
+
+# Explanation of pam_unix options:
+#
+# The "sha512" option enables salted SHA512 passwords. Without this option,
+# the default is Unix crypt. Prior releases used the option "md5".
+#
+# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
+# login.defs.
+#
+# See the pam_unix manpage for other options.
+
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules. See
+# pam-auth-update(8) for details.
+
+# here are the per-package modules (the "Primary" block)
+password [success=1 default=ignore] pam_unix.so obscure sha512
+# here's the fallback if no module succeeds
+password requisite pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+password required pam_permit.so
+# and here are more per-package modules (the "Additional" block)
+# end of pam-auth-update config
diff --git a/server/modules/pam-hso/etc/pam.d/common-session b/server/modules/pam-hso/etc/pam.d/common-session
new file mode 100644
index 00000000..4c4a7e95
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam.d/common-session
@@ -0,0 +1,36 @@
+#
+# /etc/pam.d/common-session - session-related modules common to all services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of modules that define tasks to be performed
+# at the start and end of sessions of *any* kind (both interactive and
+# non-interactive).
+#
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules. See
+# pam-auth-update(8) for details.
+
+# here are the per-package modules (the "Primary" block)
+session [default=1] pam_permit.so
+# here's the fallback if no module succeeds
+session requisite pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+session required pam_permit.so
+# The pam_umask module will set the umask according to the system default in
+# /etc/login.defs and user settings, solving the problem of different
+# umask settings with different shells, display managers, remote sessions etc.
+# See "man pam_umask".
+session optional pam_umask.so
+# and here are more per-package modules (the "Additional" block)
+session required pam_systemd.so
+session optional pam_env.so readenv=1
+session optional pam_env.so readenv=1 envfile=/etc/default/locale
+session [success=1] pam_unix.so
+session [success=ok] pam_ldap.so
+session sufficient pam_script.so
+session optional pam_mkhomedir.so skel=/etc/skel umask=0022
+# end of pam-auth-update config
diff --git a/server/modules/pam-hso/etc/pam.d/common-session-noninteractive b/server/modules/pam-hso/etc/pam.d/common-session-noninteractive
new file mode 100644
index 00000000..1fee2c4f
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam.d/common-session-noninteractive
@@ -0,0 +1,30 @@
+#
+# /etc/pam.d/common-session-noninteractive - session-related modules
+# common to all non-interactive services
+#
+# This file is included from other service-specific PAM config files,
+# and should contain a list of modules that define tasks to be performed
+# at the start and end of all non-interactive sessions.
+#
+# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
+# To take advantage of this, it is recommended that you configure any
+# local modules either before or after the default block, and use
+# pam-auth-update to manage selection of other modules. See
+# pam-auth-update(8) for details.
+
+# here are the per-package modules (the "Primary" block)
+session [default=1] pam_permit.so
+# here's the fallback if no module succeeds
+session requisite pam_deny.so
+# prime the stack with a positive return value if there isn't one already;
+# this avoids us returning an error just because nothing sets a success code
+# since the modules above will each just jump around
+session required pam_permit.so
+# The pam_umask module will set the umask according to the system default in
+# /etc/login.defs and user settings, solving the problem of different
+# umask settings with different shells, display managers, remote sessions etc.
+# See "man pam_umask".
+session optional pam_umask.so
+# and here are more per-package modules (the "Additional" block)
+session required pam_unix.so
+# end of pam-auth-update config
diff --git a/server/modules/pam-hso/etc/pam.d/kdm b/server/modules/pam-hso/etc/pam.d/kdm
new file mode 100644
index 00000000..e6a4ec9b
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam.d/kdm
@@ -0,0 +1,10 @@
+#
+# /etc/pam.d/kdm - specify the PAM behaviour of kdm
+#
+auth required pam_nologin.so
+auth required pam_env.so readenv=1
+auth required pam_env.so readenv=1 envfile=/etc/default/locale
+auth include common-auth
+account include common-account
+password include common-password
+session include common-session
diff --git a/server/modules/pam-hso/etc/pam.d/kdm-np b/server/modules/pam-hso/etc/pam.d/kdm-np
new file mode 100644
index 00000000..dc10e5b5
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam.d/kdm-np
@@ -0,0 +1,11 @@
+#
+# /etc/pam.d/kdm-np - specify the PAM behaviour of kdm for passwordless logins
+#
+auth required pam_nologin.so
+auth required pam_env.so readenv=1
+auth required pam_env.so readenv=1 envfile=/etc/default/locale
+session required pam_limits.so
+account include common-account
+password include common-password
+session include common-session
+auth required pam_permit.so
diff --git a/server/modules/pam-hso/etc/pam.d/login b/server/modules/pam-hso/etc/pam.d/login
new file mode 100644
index 00000000..1065f351
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam.d/login
@@ -0,0 +1,101 @@
+#
+# The PAM configuration file for the Shadow `login' service
+#
+
+# Enforce a minimal delay in case of failure (in microseconds).
+# (Replaces the `FAIL_DELAY' setting from login.defs)
+# Note that other modules may require another minimal delay. (for example,
+# to disable any delay, you should add the nodelay option to pam_unix)
+auth optional pam_faildelay.so delay=3000000
+
+# Outputs an issue file prior to each login prompt (Replaces the
+# ISSUE_FILE option from login.defs). Uncomment for use
+# auth required pam_issue.so issue=/etc/issue
+
+# Disallows root logins except on tty's listed in /etc/securetty
+# (Replaces the `CONSOLE' setting from login.defs)
+#
+# With the default control of this module:
+# [success=ok new_authtok_reqd=ok ignore=ignore user_unknown=bad default=die]
+# root will not be prompted for a password on insecure lines.
+# if an invalid username is entered, a password is prompted (but login
+# will eventually be rejected)
+#
+# You can change it to a "requisite" module if you think root may mis-type
+# her login and should not be prompted for a password in that case. But
+# this will leave the system as vulnerable to user enumeration attacks.
+#
+# You can change it to a "required" module if you think it permits to
+# guess valid user names of your system (invalid user names are considered
+# as possibly being root on insecure lines), but root passwords may be
+# communicated over insecure lines.
+auth [success=ok new_authtok_reqd=ok ignore=ignore user_unknown=bad default=die] pam_securetty.so
+
+# Disallows other than root logins when /etc/nologin exists
+# (Replaces the `NOLOGINS_FILE' option from login.defs)
+auth requisite pam_nologin.so
+
+# SELinux needs to be the first session rule. This ensures that any
+# lingering context has been cleared. Without out this it is possible
+# that a module could execute code in the wrong domain.
+# When the module is present, "required" would be sufficient (When SELinux
+# is disabled, this returns success.)
+# OpenSLX: Not Needed?
+#session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
+
+# This module parses environment configuration file(s)
+# and also allows you to use an extended config
+# file /etc/security/pam_env.conf.
+#
+# parsing /etc/environment needs "readenv=1"
+session required pam_env.so readenv=1
+# locale variables are also kept into /etc/default/locale in etch
+# reading this file *in addition to /etc/environment* does not hurt
+session required pam_env.so readenv=1 envfile=/etc/default/locale
+
+# Standard Un*x authentication.
+auth include common-auth
+
+# TODO do we need this?
+# This allows certain extra groups to be granted to a user
+# based on things like time of day, tty, service, and user.
+# Please edit /etc/security/group.conf to fit your needs
+# (Replaces the `CONSOLE_GROUPS' option in login.defs)
+#auth optional pam_group.so
+
+# Uncomment and edit /etc/security/time.conf if you need to set
+# time restrainst on logins.
+# (Replaces the `PORTTIME_CHECKS_ENAB' option from login.defs
+# as well as /etc/porttime)
+# account requisite pam_time.so
+
+# Uncomment and edit /etc/security/access.conf if you need to
+# set access limits.
+# (Replaces /etc/login.access file)
+# account required pam_access.so
+
+# TODO do we need this?
+# Sets up user limits according to /etc/security/limits.conf
+# (Replaces the use of /etc/limits in old login)
+#session required pam_limits.so
+
+# TODO check if this is needed
+# Prints the last login info upon succesful login
+# (Replaces the `LASTLOG_ENAB' option from login.defs)
+session optional pam_lastlog.so
+
+# Prints the motd upon succesful login
+# (Replaces the `MOTD_FILE' option in login.defs)
+session optional pam_motd.so
+
+# Standard Un*x account and session
+account include common-account
+session include common-session
+password include common-password
+
+# SELinux needs to intervene at login time to ensure that the process
+# starts in the proper default security context. Only sessions which are
+# intended to run in the user's context should be run after this.
+session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
+# When the module is present, "required" would be sufficient (When SELinux
+# is disabled, this returns success.)
diff --git a/server/modules/pam-hso/etc/pam.d/other b/server/modules/pam-hso/etc/pam.d/other
new file mode 100644
index 00000000..840eb77f
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam.d/other
@@ -0,0 +1,10 @@
+#%PAM-1.0
+auth required pam_warn.so
+auth required pam_deny.so
+account required pam_warn.so
+account required pam_deny.so
+password required pam_warn.so
+password required pam_deny.so
+session required pam_warn.so
+session required pam_deny.so
+
diff --git a/server/modules/pam-hso/etc/pam.d/passwd b/server/modules/pam-hso/etc/pam.d/passwd
new file mode 100644
index 00000000..32eaa3c6
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam.d/passwd
@@ -0,0 +1,6 @@
+#
+# The PAM configuration file for the Shadow `passwd' service
+#
+
+password include common-password
+
diff --git a/server/modules/pam-hso/etc/pam.d/sshd b/server/modules/pam-hso/etc/pam.d/sshd
new file mode 100644
index 00000000..8954d639
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam.d/sshd
@@ -0,0 +1,41 @@
+# PAM configuration for the Secure Shell service
+
+# Read environment variables from /etc/environment and
+# /etc/security/pam_env.conf.
+auth required pam_env.so # [1]
+# In Debian 4.0 (etch), locale-related environment variables were moved to
+# /etc/default/locale, so read that as well.
+auth required pam_env.so envfile=/etc/default/locale
+
+# Standard Un*x authentication.
+auth include common-auth
+
+# Disallow non-root logins when /etc/nologin exists.
+account required pam_nologin.so
+
+# Uncomment and edit /etc/security/access.conf if you need to set complex
+# access limits that are hard to express in sshd_config.
+# account required pam_access.so
+
+# Standard Un*x authorization.
+account include common-account
+
+# Standard Un*x session setup and teardown.
+session include common-session
+
+# Print the message of the day upon successful login.
+session optional pam_motd.so # [1]
+
+# TODO do we need this?
+# Print the status of the user's mailbox upon successful login.
+#session optional pam_mail.so standard noenv # [1]
+
+# TODO do we need this?
+# Set up user limits from /etc/security/limits.conf.
+#session required pam_limits.so
+
+# Set up SELinux capabilities (need modified pam)
+# session required pam_selinux.so multiple
+
+# Standard Un*x password updating.
+password include common-password
diff --git a/server/modules/pam-hso/etc/pam.d/vmware-authd b/server/modules/pam-hso/etc/pam.d/vmware-authd
new file mode 100644
index 00000000..1f9b60f9
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam.d/vmware-authd
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth include common-auth
+account include common-account
+password include common-password
+session include common-session
+
diff --git a/server/modules/pam-hso/etc/pam.d/xdm b/server/modules/pam-hso/etc/pam.d/xdm
new file mode 100644
index 00000000..d21651db
--- /dev/null
+++ b/server/modules/pam-hso/etc/pam.d/xdm
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth include common-auth
+account include common-account
+password include common-password
+session required pam_loginuid.so
+session include common-session