Я с радостью использовал blueproximity в 13.10, но после обновления до 14.04 он блокируется только тогда, когда мой телефон выходит из зоны действия (используя gnome-screensaver-command -l
), но не разблокируется с помощью gnome-screensaver-command -d
.
Теперь причина того, что gnome-screensaver-command -d
не работает, из-за ошибки .
Однако в этом сообщении об ошибке упоминается, что gnome-screensaver больше не используется в trusty, и поэтому ожидается, что gnome-screensaver-command
будет удален, что также может быть связано с тем, почему команда не работает.
Итак, мой вопрос: если заменить экранную заставку gnome, то какой будет новая команда для разблокировки экрана, не полагаясь на gnome-screensaver-command
?
Это работало на меня:
На командной строке:
gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true
экранная клавиатура появляется, когда Вы сначала входите в систему, но можно закрыть ее.
После этого gnome-screensaver-command -d
работы.
Взятый от benshayden на https://bugs.launchpad.net/ubuntu / + source/gnome-screensaver / + ошибка/1307163
<забастовка> Там не является никаким способом сделать это, к сожалению: (забастовка>
Обновление - я нашел путь. Проверьте мой более новый ответ
, Это - мое предыдущее решение - Это неблагоразумно для использования, это весьма блокируемо при потере телефона; необходимо перезапустить для разблокирования его
, я в конечном счете предложил решение - не блокируют его во-первых. Это может звучать нечетным - терпят.
Вместо того, чтобы блокировать его, я отключил Мышь и Клавиатуру, скрыл все значки на рабочем столе и затем переключился на рабочий стол. Вы могли возможно скрыть больше материала (как средство запуска), но у меня есть скрытый так или иначе.
Эта команда требует небольшого количества установки.
Установка: xdotool - sudo apt-get install xdotool
Входят: xinput --list
и записывают Ваши идентификаторы мыши и клавиатуры.
я предложил бы редактировать эти команды в gedit
Эти действия как блокировщик.
xinput set-prop <Keyboard ID> 'Device Enabled' 0 && xinput set-prop <Mouse ID> 'Device Enabled' 0 && gsettings set org.gnome.desktop.background show-desktop-icons false && wmctrl -k on
Это действует как то, чтобы разблокировать.
xinput set-prop <Keyboard ID> 'Device Enabled' 1 && xinput set-prop <Mouse ID> 'Device Enabled' 1 && gsettings set org.gnome.desktop.background show-desktop-icons true && wmctrl -k off
Изменение и к их соответствующим числам, в обеих командах.
В порядке это:
Одна важная вещь принять во внимание - это не может быть отменено без Вашего bluetooth-устройства. Если по некоторым причинам это перестало работать, необходимо перезапустить. Из-за этого могло бы быть желательно уехать, клавиатура включила и настроила разблокировать команду к выбранному ярлыку.
Так, я изобразил "лучший" способ сделать это (недостоверный, так как мы все еще храним пароль и фальсифицируем ввод его в вещь), был бы к, как я прокомментировал выше, зашифруйте пароль к флеш-карте записи. Это немного грязно из сценария, таким образом, я объясню, что продолжается.
Устройства для текущего пользователя перечисляются путем просмотра/etc/pamusb.conf с xpath; каждый затем спаривается с его UUID с помощью xpath и UUID, отображенным на устройстве с помощью blkid.
У Вас есть выбор заблокировать, разблокировать выставочное устройство или настроить Ваш ключ. При выполнении установки она создаст ~/.ssh/pamusb_rsa, если она не будет существовать. Вас затем попросят выбрать устройство (или нет, если будет только один), и вводить Ваш пароль. Ваш PW будет сохранен, зашифрован в {устройстве}/.pamusb/.auth.
Когда Вы работаете, разблокировали, устройства перечисляются снова и проверяются один за другим на/.pamusb/.auth файл. Когда каждый определит, дешифрование будет предпринято и, в случае успеха, будет использоваться для ввода пароля во что бы ни случилось для принятия текста в данный момент. Это только разрешит выполненный, когда сессия будет заблокирована, так надо надеяться, это не собирается подвергать Вас слишком плохо.
Я назвал этот ~/.bin/unity-lock-control (~/.bin, находится на моем пути), и имейте "блокировку управления блокировки единицы", и "управление блокировки единицы разблокировало" как мои агенты в pam.conf.
#!/bin/bash
PAM_KEY=${HOME}/.ssh/pamusb_rsa
devices() {
local NAMES NAME UUID DEV
NAMES=$(xmllint /etc/pamusb.conf --xpath '//user[@id="'$USER'"]/device')
NAMES=${NAMES//"<device>"/""}
NAMES=${NAMES//'</device>'/' '}
for NAME in $NAMES; do
UUID=$(xmllint /etc/pamusb.conf --xpath '//device[@id="'$NAME'"]/volume_uuid/text()')
DEV=$(blkid -U $UUID)
if [[ -n $DEV ]]; then
echo ${NAME}:${UUID}:${DEV}
fi
done
}
locked() {
LS=$(ps -A -o cmd | grep 'unity-panel-service --lockscreen-mode' | grep -v grep)
if [[ -z $LS ]]; then
return -1
else
return 0
fi
}
mounted() {
MOUNTED=$(grep $1 /proc/mounts)
if [[ -z $MOUNTED ]]; then
return -1
fi
return 0
}
mount_point() {
cat /proc/mounts | grep $1 | cut -d \ -f 2
}
case "$1" in
devices)
devices
exit 0
;;
lock)
setsid paplay /usr/share/sounds/ubuntu/stereo/service-logout.ogg &
setsid gnome-screensaver-command -l &
sleep 1
exit
;;
unlock)
if ! locked; then
echo "Screen is not locked" >&2
exit 1
fi
if [[ ! -f $PAM_KEY ]]; then
echo "${PAM_KEY} does not exist; please run $0 setup." >&2
exit 1
fi
DEVICES=$(devices)
for device in $DEVICES; do
NAME=$(echo $device | cut -d : -f 1)
UUID=$(echo $device | cut -d : -f 2)
DEV=$(echo $device | cut -d : -f 3)
mounted $DEV
MOUNTED=$?
if [[ $MOUNTED -ne 0 ]]; then
udisksctl mount -b $DEV
fi
AUTH_FILE=$(mount_point $DEV)/.pamusb/.auth
if [[ -f $AUTH_FILE ]]; then
PASS=$(openssl rsautl -decrypt -inkey $PAM_KEY -in $AUTH_FILE)
fi
if [[ $MOUNTED -ne 0 ]]; then
udisksctl unmount -b $DEV
fi
if [[ -n $PASS ]]; then
xdotool type --delay 0 "${PASS}"
xdotool key Return
sleep 1
if locked; then
setsid paplay /usr/share/sounds/ubuntu/stereo/service-login.ogg &
else
setsid paplay /usr/share/sounds/ubuntu/stereo/dialog-warning.ogg &
fi
exit 0
fi
done
echo "Did not find unlock key" >&2
exit 1
;;
setup)
echo "This will set up an OpenSSL key, and encrypt your password to be stored"
echo "on a pamusb authenticator."
echo "-----"
if [[ ! -d ${HOME}/.ecryptfs || ! -d ${HOME}/.Private ]]; then
echo "Warning: Home folder is NOT encrypted" >&2
read -p "Continue (y/N):" conf
if [[ -z $conf ]]; then exit 1; fi
if [[ $conf == "n" || $conf == "N" ]]; then exit 1; fi
fi
mkdir -p $(dirname $PAM_KEY)
if [[ ! -f $PAM_KEY ]]; then
openssl genrsa -out $PAM_KEY 1024
fi
DEVICES=$(devices)
if [[ "${#DEVICES[@]}" -eq 1 ]]; then
device="${DEVICES[0]}"
else
echo "Please select the device you would like to contain your encrypted password"
for i in "${!DEVICES[@]}"; do
echo "$i: ${DEVICES[$i]}"
done
read selection
device="${DEVICES[$selection]}"
fi
NAME=$(echo $device | cut -d : -f 1)
UUID=$(echo $device | cut -d : -f 2)
DEV=$(echo $device | cut -d : -f 3)
mounted $DEV
MOUNTED=$?
if [[ $MOUNTED -ne 0 ]]; then
echo "${NAME} is not mounted; attempting mount"
udisksctl mount -b $DEV
fi
AUTH_FILE=$(mount_point $DEV)/.pamusb/.auth
if [[ -f $AUTH_FILE ]]; then
echo "Storing encrypted password to ${DEVICES[0]}"
read -sp "Please enter your UNIX password:" PASS
echo ""
echo $PASS | openssl rsautl -encrypt -inkey $PAM_KEY -out $AUTH_FILE
fi
if [[ $MOUNTED -ne 0 ]]; then
echo "${NAME} was not mounted; unmounting"
udisksctl unmount -b $DEV
fi
exit 0
;;
*)
echo "Control for lock screen"
echo $0 '{start|stop|devices|setup}'
exit 1
;;
esac
Обновление! Существует способ использовать нормальный экран блокировки! Yay!
я не знаю, насколько безопасный это (хранение Вашего пароля в простом тексте), но я думаю, что это - самое лучшее.
Это - команда блокировки: gnome-screensaver -d
существуют 2, разблокировали команды:
No1:
Это является 1-м, разблокировали команду:
gnome-screensaver -d && xdotool type mypassword12 && xdotool key Return
щелчок должен разбудить его (это должно нажать в поле входа в систему из-за перемещения мыши), и покажите хороший новый экран блокировки вместо "спящего" черного экрана.
Тогда это вводит mypassword123!
с введением, для представления его, в текстовое поле.
Важный. По некоторым причинам - вероятно, из-за того, какой xdotool на самом деле предназначен, чтобы использоваться для (сочетаний клавиш) - Вы не можете ввести двойные буквы. Для обхождения этого разделите его на 2 команды в каждой двойной букве (как выше). Кроме того, числа должны иметь свою собственную, отдельную команду от букв (также выше). Наконец, модификаторам (таким как сдвиг) нужен отдельный, как делает клавишу Return.
<час>No2:
Это - второе. Это немного лучше и меньше hackish, но требует большой установки.
Первая установка actionaz:
sudo apt-get install actionaz
Открывают новый сценарий и притягивают корректные объекты к Вашему потоку. (можно загрузить завершенный здесь . Если Вы приняли решение загрузить это, открыть его, дважды щелкают по тексту Write - Пароль здесь и вводят Ваш пароль).
165:555
в поле Position. (В зависимости от экранной стороны это может отличаться. Удостоверьтесь, что это нажимает в поле пароля, иначе это не работает). Save это в Вашей домашней папке как unlock.ascr (или любое имя - я просто не хотел рекламировать это, это имело мой пароль в нем)
Настроенный Ваша команда близости, чтобы быть:
xdotool mousemove 0 0 && actionaz unlock.ascr -ex
перемещение мыши будит его, и опции говорят ему выполнять сценарий и затем выходить в конце.
<час>при потере устройства можно всегда просто вводить пароль, таким образом, это обратимо.