Lock / Unlock Ubuntu Desktop using USB drive


Every time I strat my Ubuntu Desktop I used to plug in my USB device for data storage. While leaving the workplace I remove USB storage device but forgot to lock the desktop. Hence in the search of utility to lock / unlock desktop using USB device I found below script.

Firstly Install xscreensaver

apt-get install xscreensaver

Then run lsusb and locate your USB Device. In my case, it was the last Device i.e Bus 004 Device 002: ID 058f:6387 Alcor Micro Corp. Transcend JetFlash Flash Drive
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 058f:6387 Alcor Micro Corp. Transcend JetFlash Flash Drive

Create a file name autoUnlock in your home directory (Avoid using root user).

touch /home/vidyadhar/autoUnlock

Copy below lines in the /home/vidyadhar/autoUnlock

#!/bin/bash
# A simple shell to lock / unlock your Desktop
# Ubuntu
# ----------------------------------------------------------------------------
# Original Script by Echowrap http://echowarp.neomenlo.org
# Modified by Vidyadhar D S <http://www.techienote.com/>
# vidyadhards@gmail.com techienote.com@gmail.com
# ----------------------------------------------------------------------------
#Replace with the ID of your USB device
id="ID 058f:6387 Alcor Micro Corp. Transcend JetFlash Flash Drive"
 
#runs every 2 seconds
for ((i=0; i<=30; i++))
do
if [ -z "`lsusb | grep "$id"`" ]
then
 
    echo "Device is NOT plugged in"
 
    if [ -n "`DISPLAY=:0.0 gnome-screensaver-command --query | grep "is active"`" ]
    then
    if [ -e /tmp/autoUnlock.lock ]
    then
    #stop locking the screen
    rm /tmp/autoUnlock.lock
 
fi
 
elif [ -e /tmp/autoUnlock.lock ]
then
 
    DISPLAY=:0.0 notify-send -t 5000 รขicon=dialog-info "Device Disconnected""Bye!"
 
    #lock the desktop
    DISPLAY=:0.0 gnome-screensaver-command --lock
 
    rm /tmp/autoUnlock.lock
 
fi
else
 
    echo "USB Plugged In"
    if [ ! -e /tmp/autoUnlock.lock ]
    then
    DISPLAY=:0.0 gnome-screensaver-command --deactivate
    DISPLAY=:0.0 notify-send -t 5000 --icon=dialog-info "Device Connected" "Welcome Back!"
    touch /tmp/autoUnlock.lock
 
    #Uncomment the 3 following lines if you would like your computer to remind you if you lock your screen without disconnecting the device
    echo "Don't forget your device!" > /tmp/usbReminder
    DISPLAY=:0 festival --tts /tmp/usbReminder
    rm /tmp/usbReminder
    fi
 
fi
sleep 2
done

Make it executable

chmod +x /home/vidyadhar/autoUnlock

Add a cron entry in user’s crontab

crontab -u vidyadhar -e
* * * * * bash /home/vidyadhar/autoUnlock & >/dev/null 2>&1

Restart the crontab

/etc/init.d/cron restart

Now remove your USB device, your desktop should be get lock now.

Subscribe / Share

Article by Vidyadhar

My name is Vidyadhar Sarmalkar & I work as a consultant and have done RHCE & CCNA.
Vidyadhar tagged this post with: , , , , , , , , , , , , , , , Read 269 articles by

Leave a Reply

rss twitter facbook

Categories

Archives