YubiKey lock screen: Difference between revisions

From D3xt3r01.tk
Jump to navigationJump to search
Line 13: Line 13:
Create a /etc/udev/rules.d/85-screen-lock-toggle.rules
Create a /etc/udev/rules.d/85-screen-lock-toggle.rules
<source lang="bash">
<source lang="bash">
ACTION=="remove", ATTRS{serial}=="1234567890", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010", RUN+="/usr/local/bin/gnome-lock-enable"
KERNEL=="hidraw?" ACTION=="remove", ATTRS{serial}=="0001484196", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010", RUN+="/usr/local/bin/gnome-lock-disable"
ACTION=="add", ATTRS{serial}=="1234567890", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010", RUN+="/usr/local/bin/gnome-lock-disable"
KERNEL=="hidraw?" ACTION=="add", ATTRS{serial}=="0001484196", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010", RUN+="/usr/local/bin/gnome-lock-enable"
</source>
</source>


Line 27: Line 27:
~# cat /usr/local/bin/gnome-lock-enable
~# cat /usr/local/bin/gnome-lock-enable
#!/bin/bash
#!/bin/bash
echo "lock enable" > /tmp/yubi_lock_log  
echo "$(date) $0" >> /tmp/yubi_lock_log
user=`ps aux | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
user=`ps aux | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
if [ -n $user ]; then
if [ -n $user ]; then
GNOME_SCREENSAVER_PROC=`ps xa | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
GNOME_SCREENSAVER_PROC=`ps xa | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
Line 37: Line 36:
~# cat /usr/local/bin/gnome-lock-disable  
~# cat /usr/local/bin/gnome-lock-disable  
#!/bin/bash
#!/bin/bash
echo "lock disable" > /tmp/yubi_lock_log
echo "$(date) $0" >> /tmp/yubi_lock_log  
user=`ps aux | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
user=`ps aux | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
if [ -n $user ]; then
if [ -n $user ]; then

Revision as of 19:26, 23 October 2012

What

I'm trying to make my fedora desktop lock the screen and unlock when it sees my key in.

HOW

Get the serial, idVendor, idProduct of the thing.

udevadm info -a -p $(udevadm info -q path -n /dev/hidraw0)

Create a /etc/udev/rules.d/85-screen-lock-toggle.rules

KERNEL=="hidraw?" ACTION=="remove", ATTRS{serial}=="0001484196", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010", RUN+="/usr/local/bin/gnome-lock-disable"
KERNEL=="hidraw?" ACTION=="add", ATTRS{serial}=="0001484196", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010", RUN+="/usr/local/bin/gnome-lock-enable"

Also you should probably reload the rules:

udevadm control --reload-rules

And you should create the 2 scripts:

~# cat /usr/local/bin/gnome-lock-enable
#!/bin/bash
echo "$(date) $0" >> /tmp/yubi_lock_log
user=`ps aux | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
if [ -n $user ]; then
	GNOME_SCREENSAVER_PROC=`ps xa | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
	export `grep -z DBUS_SESSION_BUS_ADDRESS /proc/$GNOME_SCREENSAVER_PROC/environ`
	su $user -c "gconftool-2 --set "/apps/gnome-screensaver/lock_enabled" --type bool 1"
fi
~# cat /usr/local/bin/gnome-lock-disable 
#!/bin/bash
echo "$(date) $0" >> /tmp/yubi_lock_log 
user=`ps aux | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
if [ -n $user ]; then
	GNOME_SCREENSAVER_PROC=`ps xa | grep gnome-screensaver | head -n 1 | awk '{print $1}'`
	export `grep -z DBUS_SESSION_BUS_ADDRESS /proc/$GNOME_SCREENSAVER_PROC/environ`
	su $user -c "gconftool-2 --set "/apps/gnome-screensaver/lock_enabled" --type bool 0"
fi