diff options
| author | Dirk | 2013-12-12 11:18:18 +0100 |
|---|---|---|
| committer | Dirk | 2013-12-12 11:18:18 +0100 |
| commit | b614bbbe854cd12d94074c04c70dee049b9bdf4f (patch) | |
| tree | 9f75eedb2bc7d007918fa156dc5e1b21172fe6ee /remote | |
| parent | Removing unneeded (deprecated) hwinfo stuff ... (diff) | |
| parent | [rootfs-stage32] add macvtap module to wanted kernel module list (diff) | |
| download | tm-scripts-b614bbbe854cd12d94074c04c70dee049b9bdf4f.tar.gz tm-scripts-b614bbbe854cd12d94074c04c70dee049b9bdf4f.tar.xz tm-scripts-b614bbbe854cd12d94074c04c70dee049b9bdf4f.zip | |
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
...
Diffstat (limited to 'remote')
4 files changed, 35 insertions, 90 deletions
diff --git a/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close index d3b5ebb3..535cd0d6 100755 --- a/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close +++ b/remote/modules/pam/data/opt/openslx/scripts/pam_script_ses_close @@ -7,30 +7,42 @@ export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/o slxlog "session-close" "$PAM_USER logged out on $PAM_TTY" # do not kill all root processes :) -[ "x${PAM_USER}" == "xroot" ] && exit 0 +[ "x${PAM_USER}" = "xroot" ] && exit 0 +# can only work if script is run as root +[ "x$(whoami)" = "xroot" ] || exit 0 -OPENSESSIONS=$(loginctl | grep "${PAM_USER}" | wc -l) +OPENSESSION=$(loginctl show-user "$PAM_USER" | grep "Sessions=" | cut -c 10-) +SESSIONCOUNT=$(echo "$OPENSESSION" | wc -w) -if [ "x${OPENSESSIONS}" == "x1" ]; then +if [ "$SESSIONCOUNT" = "1" ]; then # last sessions, close all ghost user processes + usleep 500000 pkill -u "${PAM_USER}" # check if user's process are still running - for TIMEOUT in 1 1 1 2; do - if ! ps aux | grep -v grep | grep -q "${PAM_USER}"; then - break; + for TIMEOUT in 1 1 2 FAIL; do + if [ "$TIMEOUT" = "FAIL" ]; then + # still something running, send SIGKILL + pkill -9 -u "${PAM_USER}" + break fi + if ! ps -o pid,s -u "$PAM_USER" -U "$PAM_USER" | grep -q -v -E "PID|Z"; then + # nothing running anymore + break + fi + # give some time sleep "${TIMEOUT}" done - # all done, kill it again to be sure - pkill -9 -u "${PAM_USER}" - - # unmount the home directory structure - umount -l "/home/${PAM_USER}/PERSISTENT" || \ - echo "Could not unmount '/home/${PAM_USER}/PERSISTENT'." + # just to be sure we check if there's no other open session in the meantime + OPEN2=$(loginctl show-user "$PAM_USER" | grep "Sessions=" | cut -c 10-) + if [ -z "$OPEN2" -o "x$OPENSESSION" = "x$OPEN2" ]; then + # unmount the home directory structure + umount -l "/home/${PAM_USER}/PERSISTENT" || \ + echo "Could not unmount '/home/${PAM_USER}/PERSISTENT'." - umount -l "/home/${PAM_USER}" || \ - echo "Could not unmount '/home/${PAM_USER}'." + umount -l "/home/${PAM_USER}" || \ + echo "Could not unmount '/home/${PAM_USER}'." + fi fi exit 0 diff --git a/remote/modules/systemd/data/usr/lib/udev/rules.d/70-uaccess-floppy.rules b/remote/modules/systemd/data/usr/lib/udev/rules.d/70-uaccess-floppy.rules new file mode 100644 index 00000000..113d288a --- /dev/null +++ b/remote/modules/systemd/data/usr/lib/udev/rules.d/70-uaccess-floppy.rules @@ -0,0 +1,8 @@ +ACTION=="remove", GOTO="floppy_extra_end" +ENV{MAJOR}=="", GOTO="floppy_extra_end" + +# floppy devices +SUBSYSTEM=="block", KERNEL=="fd[0-9]*", TAG+="uaccess" + +LABEL="floppy_extra_end" + diff --git a/remote/modules/systemd/data/usr/lib/udev/rules.d/70-udev-acl.rules b/remote/modules/systemd/data/usr/lib/udev/rules.d/70-udev-acl.rules deleted file mode 100644 index 2dac2831..00000000 --- a/remote/modules/systemd/data/usr/lib/udev/rules.d/70-udev-acl.rules +++ /dev/null @@ -1,76 +0,0 @@ -# do not edit this file, it will be overwritten on update - -# Do not use TAG+="udev-acl" outside of this file. This variable is private to -# udev-acl of this udev release and may be replaced at any time. - -ENV{MAJOR}=="", GOTO="acl_end" -ACTION=="remove", GOTO="acl_apply" - -# systemd replaces udev-acl entirely, skip if active -TEST=="/sys/fs/cgroup/systemd", TAG=="uaccess", GOTO="acl_end" - -# PTP/MTP protocol devices, cameras, portable media players -SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:060101:*", TAG+="udev-acl" - -# digicams with proprietary protocol -ENV{ID_GPHOTO2}=="*?", TAG+="udev-acl" - -# SCSI and USB scanners -ENV{libsane_matched}=="yes", TAG+="udev-acl" - -# HPLIP devices (necessary for ink level check and HP tool maintenance) -ENV{ID_HPLIP}=="1", TAG+="udev-acl" - -# optical drives -SUBSYSTEM=="block", ENV{ID_CDROM}=="1", TAG+="udev-acl" -SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", TAG+="udev-acl" - -# sound devices -SUBSYSTEM=="sound", TAG+="udev-acl" - -# ffado is an userspace driver for firewire sound cards -SUBSYSTEM=="firewire", ENV{ID_FFADO}=="1", TAG+="udev-acl" - -# webcams, frame grabber, TV cards -SUBSYSTEM=="video4linux", TAG+="udev-acl" -SUBSYSTEM=="dvb", TAG+="udev-acl" - -# IIDC devices: industrial cameras and some webcams -SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x00010*", TAG+="udev-acl" -SUBSYSTEM=="firewire", ATTR{units}=="*0x00b09d:0x00010*", TAG+="udev-acl" -# AV/C devices: camcorders, set-top boxes, TV sets, audio devices, and more -SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x010001*", TAG+="udev-acl" -SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x014001*", TAG+="udev-acl" - -# DRI video devices -SUBSYSTEM=="drm", KERNEL=="card*", TAG+="udev-acl" - -# KVM -SUBSYSTEM=="misc", KERNEL=="kvm", TAG+="udev-acl" - -# smart-card readers -ENV{ID_SMARTCARD_READER}=="*?", TAG+="udev-acl" - -# PDA devices -ENV{ID_PDA}=="*?", TAG+="udev-acl" - -# Programmable remote control -ENV{ID_REMOTE_CONTROL}=="1", TAG+="udev-acl" - -# joysticks -SUBSYSTEM=="input", ENV{ID_INPUT_JOYSTICK}=="?*", TAG+="udev-acl" - -# color measurement devices -ENV{COLOR_MEASUREMENT_DEVICE}=="*?", TAG+="udev-acl" - -# DDC/CI device, usually high-end monitors such as the DreamColor -ENV{DDC_DEVICE}=="*?", TAG+="udev-acl" - -# media player raw devices (for user-mode drivers, Android SDK, etc.) -SUBSYSTEM=="usb", ENV{ID_MEDIA_PLAYER}=="?*", TAG+="udev-acl" - -# apply ACL for all locally logged in users -LABEL="acl_apply", TAG=="udev-acl", TEST=="/var/run/ConsoleKit/database", \ - RUN+="udev-acl --action=$env{ACTION} --device=$env{DEVNAME}" - -LABEL="acl_end" diff --git a/remote/rootfs/rootfs-stage32/rootfs-stage32.conf b/remote/rootfs/rootfs-stage32/rootfs-stage32.conf index ab2ac4cc..b59a8237 100644 --- a/remote/rootfs/rootfs-stage32/rootfs-stage32.conf +++ b/remote/rootfs/rootfs-stage32/rootfs-stage32.conf @@ -128,6 +128,7 @@ REQUIRED_KERNEL_MODULES=" kernel/net kernel/sound kernel/fs/autofs4/autofs4 + kernel/drivers/net/macvtap.ko " REQUIRED_FIRMWARE=" 3com |
