giovedì 8 marzo 2012

Fedora 16: inserire password alla ripresa dalla sospensione/ibernazione.

Per poter utilizzare il procedimento che mi accingo a descrivere occorre avere installato sul proprio sistema xscreensaver.
La procedura consiste nel creare uno script da inserire in un particolare e ben preciso percorso che richiami xscreensaver ogni qualvolta ci sia una ripresa dall'ibernazione/sospensione.

PROCEDIMENTO:
- installare xscreensaver (# yum install xscreensaver) e configurarlo in modo tale che parta all'avvio del sistema (ad esempio io che utilizzo openbox ho inserito il comando "xscreensaver -no-splash &" nell'autostart di openbox)
- creare lo script ( /etc/pm/sleep.d/00screensaver-lock) e fare in modo che abbia i permessi giusti impostati a 755 e come proprietario root:root.
- nello script seguente sostituire username con il prorpio nome utente.

SCRIPT:
/etc/pm/sleep.d/00screensaver-lock
#!/bin/sh
#
# 00screensaver-lock: lock workstation on hibernate or suspend
DBUS=$(ps aux | grep 'dbus-launch' | grep -v root)
if [[ ! -z $DBUS ]];then
USER=$(echo $DBUS | awk '{print $1}')
USERHOME=$(getent passwd $USER | cut -d: -f6)
export XAUTHORITY="$USERHOME/.Xauthority"
for x in /tmp/.X11-unix/*; do
DISPLAYNUM=$(echo $x | sed s#/tmp/.X11-unix/X##)
if [[ -f "$XAUTHORITY" ]]; then
export DISPLAY=":$DISPLAYNUM"
fi
done
else
USER=username
USERHOME=/home/username
export XAUTHORITY="$USERHOME/.Xauthority"
export DISPLAY=":0"
fi
case "$1" in
hibernate|suspend)
  su $USER -c "/usr/bin/xscreensaver-command -lock" &
;;
thaw|resume)
;;
*) exit $NA
;;
esac

Ora riavviate il sistema e xscreensaver sarà configurato per chiedervi la password ogni volta che riprendiate la sessione di lavoro da un'ibernazione o sospensione.
FONTE: Archlinux Wiki.