summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaércio de Sousa <laerciosousa@sme-mogidascruzes.sp.gov.br>2015-10-15 09:23:40 -0300
committerLaércio de Sousa <laerciosousa@sme-mogidascruzes.sp.gov.br>2015-10-15 09:23:40 -0300
commit91cd1188ffbf2c10df265431bb6e03e42f255e91 (patch)
tree58938c066ba0222fc6a97946cb5def4b7592d5a0
parent43670730b60fa7c49133ca46487740370ef9c3e7 (diff)
downloadlightdm-91cd1188ffbf2c10df265431bb6e03e42f255e91.tar.gz
Move parts of guest-account script to separate files, and revert remaining sudo calls.
-rw-r--r--debian/guest-account.sh67
-rw-r--r--debian/guest-session-setup.sh34
-rw-r--r--debian/guest-session-startup.desktop5
-rw-r--r--debian/guest-session.profile1
-rw-r--r--debian/lightdm.install1
-rwxr-xr-xdebian/rules2
6 files changed, 56 insertions, 54 deletions
diff --git a/debian/guest-account.sh b/debian/guest-account.sh
index 748a7511..ffc44eb5 100644
--- a/debian/guest-account.sh
+++ b/debian/guest-account.sh
@@ -53,7 +53,8 @@ add_account ()
}
fi
- gs_skel=/etc/guest-session/skel/
+ dist_gs=/usr/share/lightdm/guest-session
+ site_gs=/etc/guest-session
# create temporary home directory
mount -t tmpfs -o mode=700,uid=${USER} none ${HOME} || {
@@ -61,29 +62,31 @@ add_account ()
exit 1
}
- if [ -d ${gs_skel} ] && [ -n $(find ${gs_skel} -type f) ]; then
+ if [ -d ${site_gs}/skel ] && [ -n $(find ${site_gs}/skel -type f) ]; then
# Only perform union-mounting if BindFS is available
if [ -x /usr/bin/bindfs ]; then
bindfs_mount=true
# Try OverlayFS first
if modinfo -n overlay >/dev/null 2>&1; then
- sudo -u ${USER} mkdir ${HOME}/upper ${HOME}/work
- mount -t overlay -o lowerdir=${gs_skel},upperdir=${HOME}/upper,workdir=${HOME}/work overlay ${HOME} || {
+ mkdir ${HOME}/upper ${HOME}/work
+ chown ${USER}:${USER} ${HOME}/upper ${HOME}/work
+ mount -t overlay -o lowerdir=${dist_gs}/skel:${site_gs}/skel,upperdir=${HOME}/upper,workdir=${HOME}/work overlay ${HOME} || {
umount ${HOME}
rm -rf ${HOME}
exit 1
}
# If OverlayFS is not available, try AuFS
elif [ -x /sbin/mount.aufs ]; then
- mount -t aufs -o br=${HOME}:${gs_skel} none ${HOME} || {
+ mount -t aufs -o br=${HOME}:${dist_gs}/skel:${site_gs}/skel none ${HOME} || {
umount ${HOME}
rm -rf ${HOME}
exit 1
}
# If none of them is available, fall back to copy over
else
- cp -rT ${gs_skel} ${HOME}
+ cp -rT ${site_gs}/skel/ ${HOME}
+ cp -rT ${dist_gs}/skel/ ${HOME}
chown -R ${USER}:${USER} ${HOME}
bindfs_mount=false
fi
@@ -100,64 +103,20 @@ add_account ()
fi
# If BindFS is not available, just fall back to copy over
else
- cp -rT ${gs_skel} ${HOME}
+ cp -rT ${site_gs}/skel/ ${HOME}
+ cp -rT ${dist_gs}/skel/ ${HOME}
chown -R ${USER}:${USER} ${HOME}
fi
else
cp -rT /etc/skel/ ${HOME}
+ cp -rT ${dist_gs}/skel/ ${HOME}
chown -R ${USER}:${USER} ${HOME}
fi
usermod -d ${HOME} ${USER}
- #
# setup session
- #
-
- # disable some services that are unnecessary for the guest session
- [ -d ${HOME}/.config/autostart ] || sudo -u ${USER} mkdir -p ${HOME}/.config/autostart
- cd /etc/xdg/autostart/
- services="jockey-kde.desktop jockey-gtk.desktop update-notifier.desktop user-dirs-update-gtk.desktop"
- for service in ${services}
- do
- if [ -e /etc/xdg/autostart/${service} ] ; then
- [ -f ${HOME}/.config/autostart/${service} ] || sudo -u ${USER} cp ${service} ${HOME}/.config/autostart
- echo "X-GNOME-Autostart-enabled=false" >> ${HOME}/.config/autostart/${service}
- fi
- done
-
- # disable Unity shortcut hint
- [ -d ${HOME}/.cache/unity ] || sudo -u ${USER} mkdir -p ${HOME}/.cache/unity
- sudo -u ${USER} touch ${HOME}/.cache/unity/first_run.stamp
-
- STARTUP=${HOME}/.config/autostart/startup-commands.desktop
- sudo -u ${USER} touch ${STARTUP}
- echo "[Desktop Entry]" > ${STARTUP}
- echo "Name=Startup commands" >> ${STARTUP}
- echo "Type=Application" >> ${STARTUP}
- echo "NoDisplay=true" >> ${STARTUP}
- echo "Exec=/usr/lib/lightdm/guest-session-auto.sh" >> ${STARTUP}
-
- sudo -u ${USER} touch ${HOME}/.profile
- echo "export DIALOG_SLEEP=4" >> ${HOME}/.profile
-
- [ -d ${HOME}/.kde/share/config ] || sudo -u ${USER} mkdir -p ${HOME}/.kde/share/config
- [ -f ${HOME}/.kde/share/config/nepomukserverrc ] || sudo -u ${USER} touch ${HOME}/.kde/share/config/nepomukserverrc
- echo "[Basic Settings]" >> ${HOME}/.kde/share/config/nepomukserverrc
- echo "Start Nepomuk=false" >> ${HOME}/.kde/share/config/nepomukserverrc
-
- [ -f ${HOME}/.kde/share/config/notificationhelper ] || sudo -u ${USER} touch ${HOME}/.kde/share/config/notificationhelper
- echo "[Event]" >> ${HOME}/.kde/share/config/notificationhelper
- echo "hideHookNotifier=true" >> ${HOME}/.kde/share/config/notificationhelper
- echo "hideInstallNotifier=true" >> ${HOME}/.kde/share/config/notificationhelper
- echo "hideRestartNotifier=true" >> ${HOME}/.kde/share/config/notificationhelper
-
- # Load restricted session
- #dmrc='[Desktop]\nSession=guest-restricted'
- #/bin/echo -e ${dmrc} > ${HOME}/.dmrc
-
- # set possible local guest session preferences
- [ -f /etc/guest-session/prefs.sh ] && sudo -u ${USER} sh -c '. /etc/guest-session/prefs.sh'
+ su ${USER} -c "env HOME=${HOME} site_gs=${site_gs} ${dist_gs}/setup.sh"
echo ${USER}
}
diff --git a/debian/guest-session-setup.sh b/debian/guest-session-setup.sh
new file mode 100644
index 00000000..9e1300db
--- /dev/null
+++ b/debian/guest-session-setup.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+HOME=${HOME:-$(getent passwd $(whoami) | cut -f6 -d:)}
+site_gs=${site_gs:-/etc/guest-session}
+
+# disable some services that are unnecessary for the guest session
+services="jockey-kde.desktop jockey-gtk.desktop update-notifier.desktop user-dirs-update-gtk.desktop"
+
+for service in ${services}; do
+ if [ -e /etc/xdg/autostart/${service} ]; then
+ [ -f ${HOME}/.config/autostart/${service} ] || cp /etc/xdg/autostart/${service} ${HOME}/.config/autostart
+ echo "X-GNOME-Autostart-enabled=false" >> ${HOME}/.config/autostart/${service}
+ fi
+done
+
+# disable Unity shortcut hint
+[ -d ${HOME}/.cache/unity ] || mkdir -p ${HOME}/.cache/unity
+touch ${HOME}/.cache/unity/first_run.stamp
+
+[ -d ${HOME}/.kde/share/config ] || mkdir -p ${HOME}/.kde/share/config
+echo "[Basic Settings]" >> ${HOME}/.kde/share/config/nepomukserverrc
+echo "Start Nepomuk=false" >> ${HOME}/.kde/share/config/nepomukserverrc
+
+echo "[Event]" >> ${HOME}/.kde/share/config/notificationhelper
+echo "hideHookNotifier=true" >> ${HOME}/.kde/share/config/notificationhelper
+echo "hideInstallNotifier=true" >> ${HOME}/.kde/share/config/notificationhelper
+echo "hideRestartNotifier=true" >> ${HOME}/.kde/share/config/notificationhelper
+
+# Load restricted session
+#dmrc='[Desktop]\nSession=guest-restricted'
+#/bin/echo -e ${dmrc} > ${HOME}/.dmrc
+
+# set possible local guest session preferences
+[ -f ${site_gs}/prefs.sh ] && . ${site_gs}/prefs.sh
diff --git a/debian/guest-session-startup.desktop b/debian/guest-session-startup.desktop
new file mode 100644
index 00000000..676d72e6
--- /dev/null
+++ b/debian/guest-session-startup.desktop
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Name=Custom startup commands for LightDM guest session
+Type=Application
+NoDisplay=true
+Exec=/usr/lib/lightdm/guest-session-auto.sh
diff --git a/debian/guest-session.profile b/debian/guest-session.profile
new file mode 100644
index 00000000..38d441c9
--- /dev/null
+++ b/debian/guest-session.profile
@@ -0,0 +1 @@
+DIALOG_SLEEP=4
diff --git a/debian/lightdm.install b/debian/lightdm.install
index 53becd25..01ce61ac 100644
--- a/debian/lightdm.install
+++ b/debian/lightdm.install
@@ -12,6 +12,7 @@ etc/apparmor.d
debian/lightdm-session usr/sbin
debian/config-error-dialog.sh usr/lib/lightdm
debian/guest-session-auto.sh usr/lib/lightdm
+debian/guest-session-startup.desktop usr/share/lightdm/guest-session/skel/.config/autostart
debian/lightdm-greeter-session usr/lib/lightdm
debian/source_lightdm.py usr/share/apport/package-hooks
debian/50-xserver-command.conf usr/share/lightdm/lightdm.conf.d
diff --git a/debian/rules b/debian/rules
index d4ee0c17..8eee47a9 100755
--- a/debian/rules
+++ b/debian/rules
@@ -27,6 +27,8 @@ override_dh_install:
# we do install pam through installpam and init through installinit
dh_install -X.a -X.la -Xpam.d -X'etc/init/lightdm.conf' --fail-missing
install -D debian/guest-account.sh debian/lightdm/usr/sbin/guest-account
+ install -D debian/guest-session-setup.sh debian/lightdm/usr/share/lightdm/guest-session/setup.sh
+ install -D debian/guest-session.profile debian/lightdm/usr/share/lightdm/guest-session/skel/.profile
chmod +x debian/lightdm/usr/lib/lightdm/lightdm-greeter-session
chmod +x debian/lightdm/usr/lib/lightdm/guest-session-auto.sh